私はscala.xml.pullを使用して、さまざまな大きなxmlファイルを解析しています。これはイベント処理にはうまく機能しますが、私がやりたいのは、パーサーに特定のノードのミニドキュメントを吐き出させることであり、これを行う簡単な方法、または少なくとも「スカラ」の方法ではありません。
私は、イテレータを使用して、タグに一致する EvElemStart イベントを見つけることができる、次のようなシーク関数を構築することを考えています。
def seek(tag: String) = {
while (it.hasNext) {
it.next match {
case EvElemStart(_, `tag`, _, _) =>
その後、私はあまり明確ではありません。XMLEventReader がポップアウトするすべてのイベントを反復するのではなく、このタグのすべての子をドキュメントに取得する簡単な方法はありますか?
私が最終的に探しているのは、ファイルをスキャンし、通常の scala xml 処理を使用して処理できる特定のタグまたはタグのセットのインスタンスごとに xml 要素 (Elem ?) を発行するプロセスです。