2012-02-14 6 views
0

JavaとApache Xerces XMLパーサを使用します。エラーはorg.apache.xerces.parsers.DOMParser.parseの内部で発生します。<br/>タグでエンティティを混在させると、XMLパーサー例外が発生する

<content id="xxx">&amp;<br /></content> 

このような行は、私が解析したいXML文書内に表示されるパーサがクラッシュし、次のエラーメッセージが返された場合:

org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference. 

を私がダウンして問題の原因を絞り込むことができ<br />の出現には、私はそれを省略してもうまく動作するが、何が破壊を引き起こすのか理解していない。アンパサンドは正しくエスケープされているため、HTML行の区切り文字として<br />の出現を妨げるものではありません。

+0

< and >もXMLのための特別な文字が。ソースXMLを管理している場合は、CDATAを使用することをお勧めします。 – kosa

+0

私が見たドキュメントでは、HTMLではないので、すべてのタグを終了する必要があります。それはXMLです。このため、人々はXHTMLの規則に従う必要があります。
が終了することが重要だと思います。 – Bry6n

+0

この問題はどのように再現できますか? ' &
は整形式のXMLです。 – mzjn

答えて

0

このように!CDATAに入れることができます。これは、XMLパーサによって解析されないようにします。あなたはCDATAセクションhereについてもっと読むことができます。

<content id="xxx">&amp;<![CDATA[<br />]]/>

0

あなたはCDATAのタグの間のテキストを置く必要があります。

<content id="xxx"><![CDATA[&amp; <br />]]></content> 

ORこの方法でそれを書く:

<content id="xxx">&amp; &lt;br /&gt;</content> 
関連する問題