2017-03-06 13 views
1

無効な文字(XML 1.0ではサポートされていない文字)を含むXMLファイルがあります。 ファイルを解析したいのですが、XMLに無効な文字が含まれているという例外が発生しています。 無効な文字でXMLを解析する方法はありますか。または、無効な文字を含むノード属性をスキップします。無効な文字でXMLを解析する

+0

はそれがうまくいきますのためにテストするのが最も簡単です)? – GPI

答えて

0

可能な回避策は、文字列として読み込み、無効な文字を有効な文字またはタグに置き換えて、そこにあることを知ることです。次に、正常に解析します。

+0

応答のおかげで.. XMLのサイズが大きすぎるので、私にとっては複雑な手続きです。私は無効な文字を取得している行番号を持っています。特定の行の内容を変更する。 – Shrikant

0

あなたは、文字が&,<であることを意味しますか?自分自身のInputStreamデコレータを記述し、それらの "不良"文字をエスケープされた文字に変換することができます。次の処理段階のために有効なデータ:あなたはXML 1.1モードでパーサを強制、または1.1ハックの一種であるXML(が、の一つとして、あなたのファイルを宣言するためにXMLプロローグを変更した場合

InputStream yourFancyIllegalCharConverter = new YourFancyIllegalCharConverter(realInputStream); 
XMLInputFactory factory = XMLInputFactory.newInstance(); 
XMLStreamReader parser = factory.createXMLStreamReader(yourFancyIllegalCharConverter); 
関連する問題