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 メソッドを使用します。http://code.google.com/p/joox/などのライブラリを使用して XML を構築します。

于 2012-04-18T13:01:34.253 に答える
2

デフォルトの XMLReader 実装の代わりに、寛大な HTML XMLReader を使用することを検討します。タグスープhtml tidyのようなもの。

于 2012-04-19T09:03:54.190 に答える