Php-and-xml
PHPとXML
XMLは、HTMLによく似たマークアップ言語です。 XML文書はプレーンテキストであり、<と>で区切られたタグが含まれています。XMLとHTMLの間に2つの大きな違いがあります-
- XMLは、使用する必要のある特定のタグセットを定義しません。
- XMLはドキュメント構造について非常に気難しいです。
XMLは、HTMLよりもはるかに自由です。 HTMLには特定のタグセットがあります。<a> </a>タグはリンクを囲み、<p>は段落を開始します。 ただし、XMLドキュメントでは、任意のタグを使用できます。 映画のレーティングの周りに<rating> </rating>タグを置き、誰かの身長の周りに<height> </height>タグを置きます。 したがって、XMLは独自のタグを作成するオプションを提供します。
XMLは、ドキュメント構造に関して非常に厳格です。 HTMLを使用すると、開始タグと終了タグを使用して、高速でゆったりと再生できます。 しかし、これはXMLには当てはまりません。
有効なXMLではないHTMLリスト
<ul>
<li>Braised Sea Cucumber
<li>Baked Giblets with Salt
<li>Abalone with Marrow and Duck Feet
</ul>
これは、3つの開始<li>タグと一致する終了</li>タグがないため、有効なXMLドキュメントではありません。 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_load_file(filename)*を使用できます。
XML解析関数の詳細については、リンク:/php/php_function_reference [PHP関数リファレンス]を確認してください。
XMLドキュメントの生成
SimpleXMLは既存のXMLドキュメントの解析には適していますが、新しいXMLドキュメントをゼロから作成することはできません。
XML文書を生成する最も簡単な方法は、構造がXML文書の構造を反映するPHP配列を構築し、配列を反復処理して、適切なフォーマットで各要素を印刷することです。
例
次の例を試してください-
<?php
$channel = array('title' => "What's For Dinner",
'link' => 'http://menu.example.com/',
'description' => 'Choose what to eat tonight.');
print "<channel>\n";
foreach ($channel as $element => $content) {
print " <$element>";
print htmlentities($content);
print "</$element>\n";
}
print "</channel>";
?>
それは次の結果を生成します-
http://menu.example.com/Choose what to eat tonight.