2 つの類似した XML ファイルを効率的に比較し、古い情報を更新する可能性を検討しています。
私が扱っているメインの XML ファイルのサイズは約 200 ~ 250 MB です。2番目は少し小さいです。
2 つの XML ファイルは、次のようになります。
<product>
<Category>BOOK</Category>
<Bookgroup>BOOKF</Bookgroup>
<Productname>Name of the book</Productname>
<Productcode>123456789</Productcode>
<Price>79.00</Price>
<Availability>Stock On Order</Availability>
<ProductURL>www.url.com</ProductURL>
<Release>07.08.2013</Release>
<Author>Name of author</Author>
<Genre>Crime</Genre>
<BookType>Pocket</BookType>
<Language>English</Language>
</product>
ご覧のとおり、私は本を扱っています。同じ情報を含む 2 番目の XML ファイルを作成する目的は、各本を 1 部だけコピーして後で使用できるようにするためです。
基本的に、最初の XML を効果的に解析し、2 番目の XML に本が存在するかどうかを確認する方法を見つけようとしています。存在する場合は、製品情報(価格、在庫状況など)が更新されているかどうかを確認します。この情報が更新されている場合は、2 番目の XML でも更新する必要があります。存在しない場合は、2 番目の XML に追加する必要があります。
XMLReader を使用すると、これと同様のアプローチを使用して、最初の XML から各書籍をかなり高速に解析できます(4,500 万行の XML をループしてすべての書籍をエコーアウトするのに 40 秒程度)。
この本が 2 番目の XML に存在するかどうかを確認し、更新または追加が必要な場合は 2 番目の XML を変更したいときに問題が発生します。
たとえば、2 番目の XML で XMLReader を使用し、最初の XML で停止したのと同じ書籍名のノードで停止してから、チェックを行うことは可能でしょうか? もしそうなら、どのように?