0

XMLStreamReader でエスケープ文字を読み取るで見られるように、この質問は以前に出てきたようです

しかし、私がここで見ている問題は少し異なります。

タグ値の 1 つとして不正な形式の html の大きなスニペットを含む、かなり大きな XML ファイルを読み込んでいます。値は CDATA で囲まれており、通常は問題を引き起こしません。しかし、断続的に、XMLSTreamReader クラスの getText メソッドはこの CDATA のテキストの半分しか読み取らず、次のバッチの最初の文字は例として「<table>」であり、パーサーはこれを文字ではなく開始ノードとして処理し、解析が失敗します。

以前に Stax パーサーでこの問題に遭遇した人はいますか。jdk1.,5 で sjsxp1.0.1 実装を使用しています。

私は今すべてのアイデアを持っていないので、助けやワイルドなアイデアをいただければ幸いです。

4

1 に答える 1

1

私はこの問題でいくらか前進したと思います。問題はsjsxpの実装にあるようです(最新のものでも)。getTextメソッドがテキスト全体を読み取らない場合があります。私と同じように運が悪ければ、タグが発生し、問題が発生する可能性があります。動作する可能性のある値をエンコードすることを計画していましたが、woodstoxの実装(http://woodstox.codehaus.org)も試しましたが、これでこのケースを処理できるようです。だからフォローアップの質問をしたかった

他の誰かがWoodstoxのStax実装を使用していて、sjsxpと比較して問題があるかどうか知っていますか?

于 2010-10-07T00:38:10.297 に答える