使用 jsoup 解析 xml 与多个孩子

Parsing xml with multi childs using jsoup

我有一个 xml 文件,如下所示 - link.

我想从中获取标题。

为此,我做了以下工作:

Document bookDoc = Jsoup.connect( url ).parser( Parser.xmlParser() ).get();
Node node  = bookDoc.childNode( 2 ).childNode( 3 ).childNode( 3 );

这个 returns 我这个:

现在我有两个问题:

  1. 有没有更简单的方法来获得这个标题而不是使用所有这些子节点?我担心的是,在某些结果中,标题不会完全位于 childNode(3),我的所有代码都无法正常工作。

  2. 我如何最终获得这个称号?我卡在这一点上,无法获取标题的字符串。

谢谢

您可以使用 selector 访问元素。这里你要select按标签名。获取所需元素的两种方式:

String title1 = bookDoc.select("record>display>title").text();
String title2 = bookDoc.selectFirst("record").selectFirst("display").selectFirst("title").text();

如果您想 select 更复杂的内容,请阅读:
https://jsoup.org/cookbook/extracting-data/dom-navigation
https://jsoup.org/cookbook/extracting-data/selector-syntax
但是你可能不需要它们来解析这个 XML.