我正在研究有效比较两个相似的 XML 文件并更新过时信息的可能性。
我正在使用的主要 XML 文件大小约为 200-250mb。第二个有点小。
这两个 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>
正如您所看到的,我正在处理书籍,并且拥有具有相同信息的第二个 XML 文件的目的是我只想要每本书的一份副本以供进一步使用。
基本上,我试图弄清楚如何有效地解析第一个 XML 并检查这本书是否存在于第二个 XML 中。如果存在,我将检查产品信息(价格、可用性等)是否已更新。如果此信息已更新,则还需要在第二个 XML 中进行更新。如果它不存在,则需要将其添加到第二个 XML。
使用 XMLReader,通过使用与此类似的方法,我能够相当快地从第一个 XML 中解析每本书(40 秒左右循环 450 万行 XML 并回显所有书籍)。
当我想检查这本书是否存在于第二个 XML 中并在需要更新或添加第二个 XML 时进行更改时,就会出现我的问题。
例如,是否可以在第二个 XML 上使用 XMLReader 并在与我在第一个 XML 中停止的书名相同的节点处停止,然后进行检查?如果有怎么办?