@AndreyBLG

Как объединить два xml файла в один на php?

Приветствую!
Уважаемые, подскажите как объединить два файла xml в один с помощью php?
А точнее взять содержимое одного узла в файле №2 и дополнить этим содержимым тот же узел в файле №1.

Вот пример файла №2.
Интересует содержимое узла "offers".
Файл №1 - точно такой же, но в "offers" у него другие записи "offer" (здесь запись "offer" одна для простоты).
Т.е. нужно забрать все узлы "offer" в файле №2 и дополнить ими узел "offers" в файле №1.

<?xml version="1.0" encoding="utf-8"?>
<yml_catalog date="2018-08-23 21:56">
  <shop>
    <name>Name</name>
    <company>ООО "Name"</company>
    <url>http://localhost</url>
    <currencies>
      <currency id="RUR" rate="1"/>
    </currencies>
    <categories>
      <category id="21">Авто</category>
      <category id="22" parentId="21">Легковые</category>
    </categories>
    <delivery-options>
      <option cost="от 1000 руб." days="32"/>
    </delivery-options>
    <offers>
      <offer id="1" type="vendor.model" available="true">
        <model>Model 1</model>
        <price>1000</price>
        <currencyId>RUR</currencyId>
        <categoryId>22</categoryId>
        <url>http://localhost/avto-1/</url>
      </offer>
    </offers>
  </shop>
</yml_catalog>


Представляю себе это так..
Лежат два отдельных xml файла (file1.xml и file2.xml).
В файле-обработчике (например concat_xml.php) происходит подключение этих двух xml файлов.
В файле №2 нужно как-то добраться до узла "offers" и получить его содержимое в переменную offers_file2, без самого родительского узла "offers", только его офферы.
Затем подключиться к файлу №1 и в конец его узла "offers" как-то перенести/скопировать содержимое offers_file2.

Прошу вашей помощи, спасибо!
Пробую пока разобраться как это сделать с помощью SimpleXML
  • Вопрос задан
  • 1120 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Farwisdomer
с помощью хpath по id считываете данные из одного файла и заполняете/дополняете второй файл опять же по id.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы