使用 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 我这个:
现在我有两个问题:
有没有更简单的方法来获得这个标题而不是使用所有这些子节点?我担心的是,在某些结果中,标题不会完全位于 childNode(3),我的所有代码都无法正常工作。
我如何最终获得这个称号?我卡在这一点上,无法获取标题的字符串。
谢谢
您可以使用 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.
我有一个 xml 文件,如下所示 - link.
我想从中获取标题。
为此,我做了以下工作:
Document bookDoc = Jsoup.connect( url ).parser( Parser.xmlParser() ).get();
Node node = bookDoc.childNode( 2 ).childNode( 3 ).childNode( 3 );
这个 returns 我这个:
现在我有两个问题:
有没有更简单的方法来获得这个标题而不是使用所有这些子节点?我担心的是,在某些结果中,标题不会完全位于 childNode(3),我的所有代码都无法正常工作。
我如何最终获得这个称号?我卡在这一点上,无法获取标题的字符串。
谢谢
您可以使用 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.