我使用JSoup从html文档中提取某些标记。但是,我需要用团队创建的一些标记来更改其中的一些。
示例
<inline id="inline-1" /> ---> <abc:123 input="1"/>
检查我的标签是否需要自动关闭标签。有线索吗?谢谢
您可以使用新元素(Jsoup.parse(
import org.jsoup.parser.Parser;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.jsoup.nodes.Attributes;
import org.jsoup.nodes.Attribute;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Entities.EscapeMode;
import org.jsoup.Jsoup;
import java.util.ArrayList;
import java.util.*;
import org.jsoup.parser.Tag;
public class MyClass {
public static void main(String args[]) {
String body = "<inline id=\"inline-1\" />";
Document doc = Jsoup.parse(body);
System.out.println("Original:\n"+doc.html()+"\n");
System.out.println("Replaced:\n"+replaceTagWithCustom(doc, "inline", "<abc:123 />").html());
//You can then add attribute as you want
doc.getElementsByTag("abc:123").first().attr("input", "1");
System.out.println("\nReplaced with attributes:\n"+doc.html());
}
static Document replaceTagWithCustom(Document doc, String original, String replacement){
//Can be changed to select to get multiple elements
Element el = doc.selectFirst(original);
//Change tagname while conserving self closing(Note: requires format <(yourtag) /> to add self closing)
Element el2 = new Element(Jsoup.parse(replacement).body().child(0).tag(),"").html(el.html());
//Strip all attributes
List<String> attToRemove = new ArrayList<>();
Attributes at = el.attributes();
for (Attribute a : at) {
attToRemove.add(a.getKey());
}
for(String att : attToRemove) {
el.removeAttr(att);
}
el.replaceWith(el2);
return doc;
}
}
Original:
<html>
<head></head>
<body>
<inline id="inline-1" />
</body>
</html>
Replaced:
<html>
<head></head>
<body>
<abc:123 />
</body>
</html>
Replaced with attributes:
<html>
<head></head>
<body>
<abc:123 input="1" />
</body>
</html>
参考:允许为标记配置自动关闭-Legioth
SO:用Jsoup替换标记-Hardik Lotiya
SO:删除属性-Xtroce
Jsoup:修改属性
问题内容: 我有一个(旧的)工具,该工具不了解像这样的自动关闭标签。所以,我们需要序列与这样的开启/关闭的标签我们的XML文件:。 目前我有: 如何使用打开/关闭的标签进行序列化? 解 由wildwilhelm给出,如下: 问题答案: 似乎标签已分配了的属性: 如果将标记的属性设置为空字符串,则应获得所需的内容: 考虑到这一点,您可能可以在编写XML之前遍历DOM树并修复属性。像这样:
如果您在开发共享库的公司工作,或者您在开源或商业库中工作,则可能需要开发自己的自动配置。 自动配置类可以捆绑在外部jar中,仍然可以通过Spring Boot获取。 自动配置可以与“启动器”相关联,该“启动器”提供自动配置代码以及您将使用它的典型库。 我们首先介绍了构建自己的自动配置需要了解的内容,然后我们将继续介绍创建自定义启动器所需的典型步骤。 可以使用演示项目来展示如何逐步创建启动器。 4.
问题内容: 我想用继承自JFrame icon的icon创建我自己的文件,并在java中对其进行设置,而我自己的文件使用FileOutputStream和ObjectOutputStream Thank you in advance 问题答案: @David是对的,因为主机平台拥有这些装饰,但是您可以使用这些图标,这些图标通常可以 概括该平台的图标。例如, 其他装饰默认列举 here. SSCCE
我有两段XML,其中一部分是:
问题内容: 我用Java创建了一个程序,并对其进行了设计,以使我希望它们出现在主体中的方法(getter方法)在启动包含这些方法的类之后可以轻松地调用它们。 问题是,我需要使这个应用程序(包含getter方法)像一个API,以便我可以让我的应用程序供开发人员在需要时使用我的函数(getter方法),并且只使用它们所需要的功能。需要添加此文件(我认为完成后的API显示为.jar文件)。 我该如何做到
问题内容: 我正在创建一个用于多个不同android应用程序的登录屏幕。打包它的最佳方法是什么,以便其他人可以在他们的应用程序上使用我的登录功能。如果我们要进行更改,最好将它们自动同步。编辑*看来将其打包到一个库模块中是最好的选择。如何上载此模块,以便如果我们对此模块进行更新,则它将无缝更新,而不必从github中获取。 谢谢! 问题答案: 如果您已将代码推送到GitHub,则使用JitPack可