問題描述
在大多數情況下,我使用 jsoup 解析 XML 沒有問題.但是,如果XML文檔中有<link>
標簽,jsoup會將<link>這里的一些文本</link>
改為<link/>這里有一些文字
.這使得無法使用 CSS 選擇器提取 <link>
標記內的文本.
In most case, I have no problem with using jsoup to parse XML. However, if there are <link>
tags in the XML document, jsoup will change <link>some text here</link>
to <link />some text here
. This makes it impossible to extract text inside the <link>
tag using CSS selector.
那么如何防止jsoup清理"<link>
標簽呢?
So how to prevent jsoup from "cleaning" <link>
tags?
推薦答案
在jsoup 1.6.2 我添加了一個 XML 解析器模式,它按原樣解析輸入,而不應用 HTML5 解析規則(元素內容、文檔結構等).此模式會將文本保留在 <link>
標記中,并允許多個標記,等等.
In jsoup 1.6.2 I have added an XML parser mode, which parses the input as-is, without applying the HTML5 parse rules (contents of element, document structure, etc). This mode will keep text in a <link>
tag, and allow multiples of it, etc.
這是一個例子:
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
這篇關于使用jsoup解析XML——防止jsoup“清理"<鏈接>標簽的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!