次のXMLでは、2番目ではなく最初のタイトルタグのコンテンツを取得できるようにしたいと思います。残念ながら、コードは両方のタイトルタグのコンテンツを出力します...
どんな助けでも大いに感謝します!
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にしたいだけです。2番目のタイトルの親タグを想定して作業しています<source>
が、どういうわけかJSoupはそうだと思っているようです。<entry>
ありがとう!
ありがとう!