逃避XML字符的最佳做法?

RoD*_*RoD 1 java xml escaping dom4j java-ee

我有html数据,我正在转换成Dom4J文档.

我遇到了一个错误:

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.
Run Code Online (Sandbox Code Playgroud)

这是一个"&",我需要逃进& 为了构建文档.

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

然而,我怎么能逃脱它,而不是逃避它到"节点"元素:

<div id="test" class='toto'>A&A<A"A</div>
Run Code Online (Sandbox Code Playgroud)

应该给:

<div id="test" class='toto'>A&amp;A&lt;A&quot;A</div>
Run Code Online (Sandbox Code Playgroud)

并不是

&lt;div id=&quot;test&quot; class=&apos;toto&apos;&gt;A&amp;A&lt;A&quot;A&lt;/div&gt;
Run Code Online (Sandbox Code Playgroud)

谢谢,

Pio*_*zda 7

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