PHP SimpleXML

SimpleXMLは最も一般的なXMLタスクを処理し、他のエクステンションに残りのタスクを任せます。

SimpleXMLとは何ですか?

SimpleXMLはPHP5の新しい機能です。XMLドキュメントのレイアウトを理解している場合、要素の属性やテキストを取得する便利な方法です。

DOMやExpatパーサーと比較して、SimpleXMLは要素からテキストデータを読み取るためにわずか数行のコードしか必要ありません。

SimpleXMLはXMLドキュメントをオブジェクトに変換できます。例えば:

  • 要素 - 単一の属性がSimpleXMLElementオブジェクトに変換されます。同一レベルに複数の要素がある場合、それらは配列に配置されます。
  • 属性 - 関連配列を使用してアクセスし、インデックスは属性名に対応します。
  • 要素データ - 要素のテキストデータは文字列に変換されます。要素が複数のテキストノードを持っている場合、それらは発見された順に並べられます。

以下のような基本的なタスクを実行する場合、SimpleXMLは非常に高速に使用できます:

  • XMLファイルを読み取る
  • XML文字列からデータを抽出する
  • テキストノードや属性の編集

しかし、名前空間などの高度なXMLを処理する場合、ExpatパーサーやXMLDOMを使用するのが最善です。

インストール

PHP5.0から、SimpleXML関数はPHPの核心の一部です。これらの関数を使用するにはインストールする必要はありません。

SimpleXMLを使用して

以下はXMLファイルです:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

私たちは上記の XML ファイルから要素の名前とデータを出力することを目指しています。

これは行うべきこと:

  1. XML ファイルをロードする
  2. 最初の要素の名前を取得する
  3. children() 関数を使用して各子要素上でループを生成する
  4. 各子要素の要素名とデータを出力する

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

以下のコードの出力:

note
to: George
from: John
heading: 警告
body: 会議を忘れないで!

PHP SimpleXML に関するさらに詳細な情報

PHP SimpleXML に関するさらに詳細な情報が必要な場合は、私たちの PHP SimpleXML リファレンスマニュアル