PHP PR

【PHP】xmlファイルデータを読込んで出力【DOMDocument】

記事内に商品プロモーションを含む場合があります

PHPのDOMDocumentを使ってxmlファイルデータを読込んで出力する方法をご紹介します。

読み込むxmlファイル形式のデータ

※今回はdata.xmlファイルを読み込みます。

<?xml version="1.0" encoding="UTF-8"?>
<list>
  <data seq="1" name="name01" cat="category01">
    <text>テキスト01</text>
    <url>https://dad-union.com/</url>
  </data>
  <data seq="2" name="name02" cat="category02">
    <text>テキスト02</text>
    <url>https://dad-union.com/</url>
  </data>
  <data seq="3" name="name03" cat="category03">
    <text>テキスト03</text>
    <url>https://dad-union.com/</url>
  </data>
  <data seq="4" name="name04" cat="category04">
    <text>テキスト04</text>
    <url>https://dad-union.com/</url>
  </data>
  <data seq="5" name="name05" cat="category05">
    <text>テキスト05</text>
    <url>https://dad-union.com/</url>
  </data>
</list>

PHPのDOMDocumentを使ってxmlファイルデータを読込んで出力するPHPの記述

※サーバーにphp-domモジュールがインストールされている必要があります。(php-xmlモジュールにがインストールされてればdomも入ってる思います)

<?php
$doc = new DOMDocument();
$doc->formatOutput = TRUE;
$doc->preserveWhiteSpace=FALSE;
$doc->load('data.xml');	//xmlファイル読込み
$data = $doc->documentElement;
$list = $doc->getElementsByTagName('data');

//以下ループでxmlファイル内のタグや属性を読込み
for($j=0; $j<$list->length; $j++){
		$seq = urldecode($list->item($j)->getAttribute("seq"));
		$name = $list->item($j)->getAttribute("name");
		$cat = $list->item($j)->getAttribute("cat");
		$text_list = $list->item($j)->getElementsByTagName('text');
		$text = urldecode(nl2br($text_list->item(0)->nodeValue));
		$url_list = $list->item($j)->getElementsByTagName('url');
		$url = urldecode($url_list->item(0)->nodeValue);

		$str_work = $seq."|".$name."|".$cat."|".$text."|".$url."<br>";
		
		print $str_work;
}
?>

xmlファイルデータを読込んで出力するphpのデモページ

xmlファイルデータを読込んで出力するphpのデモ

xmlファイルのデータ量や持たせ方が複雑なデータ操作になる場合はDBにデータを蓄積してそこからデータ取得して出力させた方が良いですね。

 
※流用される場合は自己責任でお願いします。
 デモページheadタグ内のGoogleアナリティクスタグは流用しないで下さい。