大きな XML ファイル (MediaWiki ダンプ ファイル) にインデックスを付け、ファイルに保存されている個々のレコードへのランダム アクセスにそれらのインデックスを使用する一連のツールがあります。それは非常にうまく機能しますが、ファイルの作成方法が将来変更された場合に脆弱なソリューションである実際の XML パーサーではなく、文字列関数や正規表現を使用して XML を「解析」しています。
一部またはほとんどの XML パーサーには、そのようなことを行う方法がありますか?
(C、Perl、および Python で記述されたツールのバージョンがあります。ファイル全体をある種のデータベースに解析したり、それらをメモリにマッピングしたりすることはできません。)
アップデート
比較のための大まかな統計は次のとおりです。私が使用しているファイルはほとんど毎週公開されており、現在のファイルのサイズは 1,918,212,991 バイトです。インデックス作成ツールの C バージョンは、私のネットブックでは数分かかり、発行される新しい XML ファイルごとに 1 回だけ実行する必要があります。現在のサイズが 30,565,654,976 バイトで、2010 年に 8 回しか更新されていない別の XML ファイルに対して同じツールを使用することはあまりありません。