質問

私は私が解析する必要がなく、の作成を制御することはできませんXMLを持っています。残念ながら、それは非常に厳格なXMLがないとのようなものが含まれています:

<mytag>This won't parse & contains an ampersand.</mytag>

javax.xml.streamクラスは、すべて、と当然のエラーで、これを好きではない:

javax.xml.stream.XMLStreamException: ParseError at [row,col]:[149,50]
Message: The entity name must immediately follow the '&' in the entity reference.

どのように私はこの問題を回避することができますか?私は、XMLを変更することはできませんので、私は、私は、エラー耐性のパーサが必要と思います。

私の好みは、既存のパーサのコードにあまりにも多くの混乱を必要としない修正のためになる。

役に立ちましたか?

解決

それは(上記のように)有効なXMLでない場合は(あなたが特定されてきたように)、その後何のXMLパーサがそれを処理しません。あなたが(例えば、上記エンティティの問題のような)エラーの範囲を知っている場合、最も簡単な解決策は、(そのようなエンティティの挿入などのエンティティを固定)その上に補正処理を実行し、既存のパーサにそれを供給することができる。

そうでなければ、あなたは、このような異常のためのビルトインサポートと1を自分でコーディングする必要があります。そして、私はそれが退屈でエラーを起こしやすいタスク以外のものだと信じていないことができます。

他のヒント

このようtidytagsoupとして

使用ライブラリます。

代わりに、解析のよく形成されていることJavaで書かれた

TagSoup、SAX準拠パーサそれは野生で見られるような、または有効なXML、HTMLを解析します、貧しい厄介なと野蛮、かなり頻繁にはるかに短いからかかわらする

私は

JSoupがひどく形成されたXMLを扱うことができると信じて
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top