PHP SimpleXML - ノード/属性値の取得

❮ 前章へ 次章へ ❯

SimpleXMLは、XMLデータを簡単に操作して取得するためのPHP拡張です。


PHP SimpleXML - ノード値の取得

"note.xml" ファイルからノード値を取得します:

<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>
例の実行 »

上のコードの出力は次のようになります:

Tove
Jani
Reminder
Don't forget me this weekend!

他の XML ファイル

次の様な、"books.xml"というXMLファイルがあったとします:

<?xml version="1.0" encoding="utf-8"?>
<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="WEB">
    <title lang="en-us">XQuery Kick Start</title>
    <author>James McGovern</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book category="WEB">
    <title lang="en-us">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

PHP SimpleXML - 指定要素のノード値の取得

次の例では、"books.xml"ファイルの1番目と2番目の <book> 要素の <title> 要素のノード値を取得します:

<?php
$xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
echo $xml->book[0]->title . "<br>";
echo $xml->book[1]->title;
?>
例の実行 »

上のコードの出力は次のようになります:

Everyday Italian
Harry Potter

PHP SimpleXML - ノード値の取得 - ループ

次の例は、"books.xml"ファイル内の全<book>要素をループし、<title>、<author>、 <year>、<price>要素のノード値を取得します:

<?php
$xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
foreach($xml->children() as $books) {
    echo $books->title . ", ";
    echo $books->author . ", ";
    echo $books->year . ", ";
    echo $books->price . "<br>";
}
?>
例の実行 »

上のコードの出力は次のようになります:

Everyday Italian, Giada De Laurentiis, 2005, 30.00
Harry Potter, J K. Rowling, 2005, 29.99
XQuery Kick Start, James McGovern, 2003, 49.99
Learning XML, Erik T. Ray, 2003, 39.95

PHP SimpleXML - 属性値の取得

次の例は、最初の<book>要素の "category"属性の値と、2番目の<book>要素内の<title>要素の "lang"属性の値を取得します:

<?php
$xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
echo $xml->book[0]['category'] . "<br>";
echo $xml->book[1]->title['lang'];
?>
例の実行 »

上のコードの出力は次のようになります:

COOKING
en

PHP SimpleXML - 属性値の取得 - ループ

次の例は、 "books.xml"ファイルの<title>要素の属性値を取得します:

<?php
$xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
foreach($xml->children() as $books) {
    echo $books->title['lang'];
    echo "<br>";
}
?>
例の実行 »

上のコードの出力は次のようになります:

en
en
en-us
en-us

その他の PHP SimpleXML

PHP SimpleXML関数の詳細については、 PHP SimpleXMLリファレンスをご覧ください。


❮ 前章へ 次章へ ❯