1

我有要转换为 Dom4J 文档的 html 数据。

我遇到了一个错误:

org.dom4j.DocumentException: Error on line 1 of document  : Reference is not allowed in prolog. Nested exception: Reference is not allowed in prolog.
    at org.dom4j.io.SAXReader.read(SAXReader.java:482)
    at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
    at MonTest.main(MonTest.java:21)
Nested exception: 
    org.xml.sax.SAXParseException: Reference is not allowed in prolog.

这是一个字符“&”,我需要转义到 & amp; 为了构建文档。

在 XML 中,似乎我们需要转义 5 个字符:(gt, lt, quot, amp, apos)

然而,我怎样才能逃脱它,而不将它转义到“节点”元素中:

<div id="test" class='toto'>A&A<A"A</div>

应该给:

<div id="test" class='toto'>A&amp;A&lt;A&quot;A</div>

并不是

&lt;div id=&quot;test&quot; class=&apos;toto&apos;&gt;A&amp;A&lt;A&quot;A&lt;/div&gt;

谢谢,

4

2 回答 2

7

在添加到 XML 文档之前转义字符串。使用来自 Apache Commons Lang 的 StringEscapeUtils.escapeXml 方法。使用一些库来构建 XML,例如http://code.google.com/p/joox/

于 2012-04-18T13:01:34.253 回答
2

我会看看使用宽松的 HTML XMLReader 而不是默认的 XMLReader 实现。像tag souphtml tidy这样的东西。

于 2012-04-19T09:03:54.190 回答