Как сравнить элементы в двух больших XML-файлах и выбрать более новое значение

Каков наилучший способ сравнить элементы двух больших файлов 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>

1 ответ

Для больших файлов XML я бы сказал, что лучше всего использовать SAX XML Parser.

Управлять им немного сложнее, если сравнить его с SimpleXML, DOM-парсером или XMLReader, но с точки зрения управления памятью, я бы сказал, это то, что вы ищете.

Затем, для ваших запросов я бы пошел на XPath, и вы можете найти хорошие подсказки здесь: Есть ли процессор XPath для модели SAX?

Другие вопросы по тегам