Contents
PHP&XML
XMLはHTMLのように見えるマークアップ言語です。XML文書はプレーンテキストで、<と>で区切られたタグを含んでいます.XMLとHTMLの2つの大きな違いがあります。
- XMLは、使用する必要がある特定のタグのセットを定義していません。
- XMLは、ゆうずうがききません。ジャバスクリプトみたいにうまくはいきません。
XMLは、文書構造に関しては非常に厳密です。
有効でないXMLのHTMLリスト
<ul> <li>Braised Sea Cucumber <li>Baked Giblets with Salt <li>Abalone with Marrow and Duck Feet </ul>
これは有効なXML文書ではありません。なぜなら、3つの開始<li>タグと一致する終了タグ</ li>が存在しないからです。XML文書内の開いているタグはすべて閉じなければなりません。
有効なXMLであるHTMLリスト
<ul> <li>Braised Sea Cucumber</li> <li>Baked Giblets with Salt</li> <li>Abalone with Marrow and Duck Feet</li> </ul>
XML文書の解析
PHP 5の新しいSimpleXMLモジュールは、XML文書の解析を簡単にします。これは、XML文書をXMLに構造化されたアクセスを提供するオブジェクトに変換します。
文字列に格納されたXMLドキュメントからSimpleXMLオブジェクトを作成するには、文字列をsimplexml_load_string()に渡します。SimpleXMLオブジェクトを返します。
例
次の例を試してみてください –
<html> <body> <?php $note=<<<XML <note> <to>Gopal K Verma</to> <from>Sairamkrishna</from> <heading>Project submission</heading> <body>Please see clearly </body> </note> XML; $xml=simplexml_load_string($note); print_r($xml); ?> </body> </html>
XML文書の生成
SimpleXMLは既存のXMLドキュメントを解析するのには適していますが、新しいXMLドキュメントを作成する際には使用できません。
XML文書を生成する最も簡単な方法は、XML文書の構造を反映した構造を持つPHP配列を構築し、配列を反復処理し、各要素を適切な書式で出力することです。
例
次の例を試してみてください –
<?php $channel = array('title' => "今日の夕飯は", 'link' => 'http://menu.example.com/', 'description' => 'こんやの食べるものをきめましょう。.'); print "<channel>\n"; foreach ($channel as $element => $content) { print " <$element>"; print htmlentities($content); print "</$element>\n"; } print "</channel>"; ?>
こうなります
<channel> <title>今日の夕飯は</title> <link>http://menu.example.com/</link> <description>こんやの食べるものをきめましょう.</description> </channel>