0

JavaのXMLStreamReaderを使用して巨大な(> 1GB)xmlファイルを解析しようとしています。getText()メソッドを使用して、ノードのコンテンツをプルします。私が持っているxmlファイルはISO-8859-1としてエンコードされており、一部の文字には特別なエンコードがあります。たとえば、ファイルのように&エンコードされ&ています。

したがって、ファイルに次のようなものが含まれている場合:

<person>Jack</person>
<person>Jill</person>
<persons>Jack &amp; Jill</persons>

そして、getText()を使用して各ノードのコンテンツを取得しようとすると、3番目のノードは。のみを返しますJack。文字が検出されるたび&xxx;に、(同じノード内の)その後の文字は解析または返されません。

問題はどこだ?xmlファイルは正しくエンコードされていますか?Javaパーサーを正しく使用していますか?

ありがとう!

4

1 に答える 1

2

問題は、パーサーが第三者要素の内容を複数の処理イベントに分割したことだと思います。( のこの動作next()文書化されています。) 呼び出しgetText()は、現在のイベントのテキストを提供するだけです。

getElementText()代わりに使用してみてください。

于 2012-10-14T03:14:06.057 に答える