如何防止标签更换?

时间:2014-11-26 13:28:21

标签: java jsoup

我需要将html代码解析为java输入流。我在流中有这个html代码:

<p contenteditable=true><ul><li>item 1</li><li>item 2</li></ul></p>

并且在调用Jsoup.parse(stream)之后我有结果

<p contenteditable=true></p><ul><li>item 1</li><li>item 2</li></ul>

如何防止代码修改?我不需要更改HTML代码。如何解决这个问题?为什么它取代了<p>标签?

2 个答案:

答案 0 :(得分:4)

&#39; UL&#39;内部法律允许的元素不属于&#39; p&#39;元素,所以可能Jsoup将其标准化。 也许Document xmlDoc = Jsoup.parse(html, baseUri, Parser.xmlParser());可行。

答案 1 :(得分:1)

你给了Jsoup无效的xHTML但是有效的HTML 4和5假设你并不意味着关闭p标签。此外,p标签不能包含列表标签,因此,如果您打算关闭p标签,它几乎对所有HTML都无效。

我猜Jsoup试图规范化为xHTML并且没有很多解析器不会。我知道唯一能完全保留节点的解析器是Jericho。