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ファイルのデータ量や持たせ方が複雑になってきそうな時はDBにデータを蓄積してそこからデータ取得して出力させた方が良いと思いますが、どこまでがxmlでどこからがDBにした方が良いかよく迷います。
※流用される場合は自己責任でお願いします。
デモページheadタグ内のGoogleアナリティクスタグは流用しないで下さい。
ディスプレイ広告