如:
Document doc = Jsoup.parse(file,"UTF-8");
Elements eles = doc.getElementsByTag("style");
如何获取文件中
eles[0]
的行号?
没有直接的方法。但还有一个间接的方法。 一旦找到像属性这样的兴趣点,只需在元素前添加一个 html 标记,然后将该文件写入另一个临时文件。下一步是使用文本编辑工具搜索令牌。
代码如下。
//获取一个元素
for (元素元素: doc.getAllElements()) {
...一些获取元素属性的代码...
String myAttr = attribute.getKey();
if (myAttr.equals("一些感兴趣的属性名称") {
System.out.println(attribute.getKey() + "::" + attribute.getValue());
元素之前(“”);
}
// 将文档写回临时文件
// 请参阅:如何将 jsoup 文档另存为文本文件
最后一步是使用文本编辑工具在输出文件中搜索“我的特殊令牌:ABCDEFG”。
jsoup 是一个不错的库。我认为这会帮助其他人。
这对我使用 v1.18.34 有效。把它放在这里是因为这是我第一次开始寻找时的第一个谷歌结果。
Document doc = Jsoup.parse(html, Parser.htmlParser().setTrackPosition(true));
doc.body().children()
.stream().filter(element -> element.tagName().equals("p") || element.tagName().startsWith("h"))
.forEach(element -> {
int lineNumber = element.sourceRange().start().lineNumber();
System.out.println(element.tagName() + " @ Line number: " + lineNumber);
});