在下面的 XML 中,我希望能够获取第一个标题标签的内容,而不是第二个。不幸的是,代码打印了两个标题标签的内容......
任何帮助都会非常感谢!
String feedXMLString = "<entry><title>title 1</title><source><title>title 2</title></source></entry>";
Document feedXML = Jsoup.parse(feedXMLString);
NodeTraversor feedXMLTraversor = new NodeTraversor(new NodeVisitor() {
@Override
public void tail(Node node, int depth) {
if (node instanceof Element) {
String tagName = ((Element) node).tagName();
String parentTagName = ((Element) node).parent().tagName();
if (tagName.equals("title")) {
if (parentTagName.equals("entry")) {
String title = ((Element) node).ownText();
System.out.println(title);
}
}
}
}
@Override
public void head(Node node, int depth) {
}
});
feedXMLTraversor.traverse(feedXML.body());
输出是
title 1
title 2
我只是希望它是标题 1。我假设第二个标题的父标签是<source>
,但由于某种原因 JSoup 似乎认为它是<entry>
谢谢!
谢谢!