【PHP】複数のXMLを結合する

配列に入れた複数のURLから foreach を使ってXMLを結合したかったのですが、
なかなか上手くいかず、ネット中を探しまわて見つけたコードです。

スッキリ解決したのでメモ。

http://stackoverflow.com/questions/20372216/combine-multiple-xml-into-one#answers

<?php

  $files= array(
    'xml1.xml',
    'xml2.xml'
  );

  $dom = new DOMDocument();
  $dom->appendChild($dom->createElement('JobRecords'));

  foreach ($files as $filename) {
    $addDom = new DOMDocument();
    $addDom->load($filename);
    if ($addDom->documentElement) {
      foreach ($addDom->documentElement->childNodes as $node) {
        $dom->documentElement->appendChild(
          $dom->importNode($node, TRUE)
        );
      }
    }
  }

  echo $dom->saveXml();

これを見つけるまで色々な書き方を試したのですが、
こんなに綺麗に書けるんだと感動しました。

Writer

KO

誕生日に会社のみんなから『世界文学全集』をプレゼントしてもらった読書好きフロントエンド・エンジニアです。WordPressとMovableTypeが得意ですが、本当の特技は薪割りです。

Contact

ご提案依頼、ご相談、お見積もりなど
お気軽にお問合わせください。

03-6403-3259

平日 10:00~19:00

「Web制作について」とお伝え頂ければ
担当者に取次させていただきます。

Mailform

contact@trym.jp
でも受け付けております。