使用jsoup解析XML - 防止jsoup"清理"<link>标记

Eth*_*han 15 java link-tag xml-parsing jsoup

在大多数情况下,使用jsoup解析XML没有问题.但是,如果<link>XML文档中有标记,则jsoup将更<link>some text here</link>改为<link />some text here.这使得无法<link>使用CSS选择器在标记内提取文本.

那么如何防止jsoup"清理" <link>标签呢?

Jon*_*ley 35

jsoup 1.6.2中,我添加了一个XML解析器模式,它按原样解析输入,而不应用HTML5解析规则(元素,文档结构等的内容).此模式将文本保留在<link>标记中,并允许它的倍数等.

这是一个例子:

String xml = "<link>One</link><link>Two</link>";
Document xmlDoc = Jsoup.parse(xml, "", Parser.xmlParser());

Elements links = xmlDoc.select("link");
System.out.println("Link text 1: " + links.get(0).text());
System.out.println("Link text 2: " + links.get(1).text());
Run Code Online (Sandbox Code Playgroud)

返回:

Link text 1: One
Link text 2: Two
Run Code Online (Sandbox Code Playgroud)

  • @Jonathan Hedley:但是如果您使用 JSOUP.Connect 检索 XML 文档,您将如何使用它?因为那样我们根本就没有 xml 的字符串版本。 (2认同)