在大多数情况下,使用jsoup解析XML没有问题。但是,如果XML文档中有<link>
标记,则jsoup会将<link>some text here</link>
更改为<link />some text here
。这使得无法使用CSS选择器在<link>
标记内提取文本。
那么如何防止jsoup“清除” <link>
标签呢?
最佳答案
在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());
返回值:
Link text 1: One
Link text 2: Two