我想知道是否可以使用Jsoup for html pages这样的事情。
HTML文档,公司和员工被视为html标签:
<company>
<staff id="1">
<firstname>George</firstname>
<lastname>Deren</lastname>
<nickname>Revan</nickname>
<salary>50000</salary>
<age>24</age>
<extra>
<test>123</test>
</extra>
例如,括号将包含该特定标记的DOM深度。
company[1]
staff[2]
firstname[3]
lastname[3]
nickname[3]
salary[3]
age[3]
extra[3]
test[4]
最深层次是:4
答案 0 :(得分:1)
您可以使用节点访问者。它具有深度值。假设您的xml存储在data.xml文件中,然后该程序打印出您想要的内容
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Node;
import org.jsoup.nodes.TextNode;
import org.jsoup.parser.Parser;
import org.jsoup.select.NodeVisitor;
public class JsoupDepth {
public static void main(String[] args) {
File input = new File("data.xml");
try {
Document doc = Jsoup.parse(new FileInputStream(input), "UTF-8", "", Parser.xmlParser());
doc.traverse(new NodeVisitor() {
public void head(Node node, int depth) {
if(!(node instanceof TextNode)) {
System.out.println(node.nodeName() + "[" + depth + "]");
}
}
public void tail(Node node, int depth) {
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}