繁体   English   中英

使用Jsoup时如何获取元素的LineNumber?

[英]How can I get the LineNumber of the element when using Jsoup?

如:

Document doc = Jsoup.parse(file,"UTF-8");

Elements eles = doc.getElementsByTag("style");

如何获取文件中eles[0]的lineNumber?

您无法通过Jsoup API做到这一点。 我检查了它们的源代码: org.jsoup.parser.Parser在原始输入中不保留元素的位置信息。

请参考Grep代码的来源

如果Jsoup是为提取和处理数据而构建的,我不相信它们将来会具有这样的功能,因为操作后元素位置不明确,维护实际引用的成本很高。

没有直接的方法。 但是有一种间接的方式。 找到兴趣点(如属性)后,只需在元素之前添加标记(如html),然后将文件写入另一个临时文件即可。 下一步是使用文本编辑工具搜索令牌。

代码如下。

第1步:

//获取一个元素
对于(Element element:doc.getAllElements()){
...一些代码来获取元素的属性...

字符串myAttr = attribute.getKey();
如果(myAttr.equals(“ 感兴趣的某些属性名称 ”){
System.out.println(attribute.getKey()+“ ::” + attribute.getValue());
element.before(“ <!-我的特殊令牌:ABCDEFG->”);
}

第2步:

//将文档写回到临时文件
//请参阅: 如何将jsoup文档另存为文本文件

步骤3:

最后一步是使用文本编辑工具在输出文件中搜索“我的特殊令牌:ABCDEFG”。

jsoup是一个不错的库。 我以为这会帮助别人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM