Каков наилучший способ сравнить элементы двух больших файлов XML с продуктами?
Например: если один файл XML содержит product
с тем же id
как и во втором XML-файле, я хотел бы выбрать продукт, который имеет более новые date_added
и сохранить его в новый файл.
Пример моего кода XML:
<products>
<product id="1" date_added="2016-05-05">
<category><![CDATA[Category1]]></category>
<name><![CDATA[Product name]]></name>
<description><![CDATA[Description...]]></description>
<attributes>
<a name="Producent"><![CDATA[Producent]]></a>
<a name="PN"><![CDATA[12345]]></a>
</attributes>
</product>
</products>
Для больших файлов XML я бы сказал, что лучше всего использовать SAX XML Parser.
Управлять им немного сложнее, если сравнить его с SimpleXML, DOM-парсером или XMLReader, но с точки зрения управления памятью я бы сказал, что вы ищете.
Затем, для ваших запросов я бы пошел на XPath, и вы можете найти хорошие подсказки здесь: Есть ли процессор XPath для модели SAX?
Других решений пока нет …