2012-03-23 15 views
0

私は大きな文書をSTAXで解析しています。 XMLStreamReaderまたはその位置を覚えたり、クローンしたり、保存したりするにはどうしたらよいですか?後でその位置に戻って、いつものように読むことができますか?STAXでxmlのXMLStreamReaderの位置を覚える方法

EDIT

私はtheresののgetLocation()メソッドを知っているが、どのように私は別のリーダーに場所を割り当てていますか?

答えて

3

これはできません。特定の場所にジャンプすることはできません。 StAXと同様にSAXは前方のみのパーサです。そのようなことは、効率的な実装を可能にします。

ディープクローンを使用すると、実装がそれをサポートしていれば理論上可能です(可能性は低い)。 DomやTrAXパーサーが必要だと分かります。

文書のサイズのためにそれが不可能な場合は、構文解析を修正して、以前の場所に戻す必要がないようにする必要があります。あるいは、コード内の位置を(例えば、要素数に基づいて)覚えて、実際の処理の前に新しいパーサーをその点に置くこともできます。

+0

お返事ありがとうございます。要素数を使用することは本当にクールなアイデアです。ありがとう! – bunnyjesse112

関連する問題