PHPによるXMLの操作
xmlの例
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns:dc="http://purl.org/dc/elements/1.1/">
<name>熊本市立図書館</name>
<place>
<zip>862-0971</zip>
<adr>熊本県熊本市大江6-1-74</adr>
</place>
<link>http://www-library.kumamoto-kmm.ed.jp/</link>
<books>
<book no="1">
<title>坊ちゃん</title>
<author>夏目漱石</author>
<publish>講談社</publish>
<dc:date>2005-03-10T00:20:06+09:00</dc:date> </book>
<book no="2">
<title>草枕</title>
<author>夏目漱石</author>
<publish>講談社</publish>
<dc:date>2005-02-16T00:00:06+09:00</dc:date> </book>
<book no="3">
<title>蜘蛛の糸</title>
<author>芥川龍之介</author>
<publish>講談社</publish>
<dc:date>2005-04-05T00:00:06+09:00</dc:date> </book>
</books>
</library>
simpleXML
simpleXMLとはPHPでXMLを簡単に使うためのライブラリ。標準で使用可能。
xmlの読み込み
$xml =simplexml_load_file(ファイル名);
ファイル名にはURLを指定可能。
内容の取得
echo $xml->name; // 熊本市立図書館 echo $xml->place->zip; // 862-0971
繰り返しでの取得
foreach ($xml->books->book as $book)
{
echo "<h2>" . $book->title . "</h2>";
echo "<p>" . $book->author . "</p>";
}
属性の取得
上の例のbookを使用
echo $book["no"];
または
echo $book->attributes()->no;
名前空間の取得
childrenを使い、その名前空間を取得する
foreach ($xml->books->book as $book) {
$dc =
$book->children('http://purl.org/dc/elements/1.1/');
echo $dc->date;
}
※日付を好きな書式にする場合
$date = new DateTime($dc->date);
echo $date->format('Y/m/d H:i:s');
PHP開発 虎の巻