PHP XML チュートリアル: 例を使用した作成、解析、読み取り

XMLとは何ですか?

XML は Extensible Markup Language の頭字語です。

XML は、データを構造化し、保存し、あるシステムから別のシステムに転送するために使用されます。

XML は HTML に似ています。

開始タグと終了タグを使用します。

HTML とは異なり、XML ではユーザーが独自のタグを定義できます。

DOMとは何ですか?

DOM は、Document Object Model の頭字語です。

これは、データにアクセスして操作する方法を定義する、クロスプラットフォームおよび言語に依存しない標準です。

  • HTML
  • XHTML
  • XML

DOM XML は、XML ドキュメントにアクセスして操作するために使用されます。 それ XMLドキュメントを表示します ツリー構造として。

XML パーサー

XML パーサーは、XML ドキュメントを XML ドキュメント オブジェクト モデル (DOM) オブジェクトに変換するプログラムです。

XML DOM オブジェクトは、JavaScript、Python、PHP などを使用して操作できます。

(Unparsed) Character Data の頭字語であるキーワード CDATA は、XML ドキュメントを解析するときに「<,>」などの特殊文字を無視するために使用されます。

XML を使用する理由

  • SOAP や REST などの Web サービスは、XML 形式を使用して情報を交換します。 最新のアプリケーションでは Web サービスが多用されているため、XML とは何か、そしてその仕組みを学ぶことで、開発者として競争力を高めることができます。
  • XML ドキュメントを使用してアプリケーションの構成設定を保存できる
  • 独自のカスタム タグを作成できるため、より柔軟になります。

XMLドキュメントの例

Web サービスから XML 形式でデータを取得するアプリケーションを開発していると仮定します。

以下は、XML ドキュメントがどのように見えるかのサンプルです。

<?xml version="1.0" encoding="utf-8"?>
<employees status = "ok">
        <record man_no = "101">
            <name>Joe Paul</name>
            <position>CEO</position>
        </record>
        <record man_no = "102">
            <name>Tasha Smith</name>
            <position>Finance Manager</position>
        </record>
</employees>

ここに、

  • 「 ” は使用する XML バージョンとエンコーディングを指定します
  • 「 ”がルート要素です。
  • 「 … 」はそれぞれ、administration と sales の子要素です。

PHP を使用して XML を読み取る方法

次に、従業員の XML ドキュメントを読み取り、結果を Web ブラウザーに表示するコードを作成しましょう。 index.phpを

<?php
$xml = simplexml_load_file('employees.xml');
echo '<h2>Employees Listing</h2>';
$list = $xml->record;
for ($i = 0; $i < count($list); $i++) {
    echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>';
    echo 'Name: ' . $list[$i]->name . '<br>';
    echo 'Position: ' . $list[$i]->position . '<br><br>';
}
?>

ここに、

  • 「$xml = SIMplexml_load_file('従業員.xml');” シムを使用しますplexml_load_file 関数を使用して、ファイル名employees.xmlをロードし、その内容を配列変数$xmlに割り当てます。
  • 「$list = $xml->レコード;」 レコードノードの内容を取得します。
  • 「for ($i = 0; $i < count(…)…」は、数値配列を読み取り、結果を出力する for ループです。
  • 「$list[$i]->attributes()->man_no;」 要素の man_no 属性を読み取ります
  • 「$list[$i]->名前;」 name 子要素の値を読み取ります
  • 「$list[$i]->位置;」 位置子要素の値を読み取ります。

アプリケーションをテストする

ファイルindex.phpをphptus/xmlフォルダーに保存したと仮定して、URLを参照します。 http://localhost/phptuts/xml/index.php

PHPを使用してXMLを読み取る

PHP を使用して XML ドキュメントを作成する方法

ここでは、PHP を使用して XML ドキュメントを作成する方法を見ていきます。

DOM ツリー図で上の例を使用します。

次のことwing このコードは、PHP 組み込みクラス DOMDocument を使用して XML ドキュメントを作成します。

<?php

	$dom = new DOMDocument();

		$dom->encoding = 'utf-8';

		$dom->xmlVersion = '1.0';

		$dom->formatOutput = true;

	$xml_file_name = 'movies_list.xml';

		$root = $dom->createElement('Movies');

		$movie_node = $dom->createElement('movie');

		$attr_movie_id = new DOMAttr('movie_id', '5467');

		$movie_node->setAttributeNode($attr_movie_id);

	$child_node_title = $dom->createElement('Title', 'The Campaign');

		$movie_node->appendChild($child_node_title);

		$child_node_year = $dom->createElement('Year', 2012);

		$movie_node->appendChild($child_node_year);

	$child_node_genre = $dom->createElement('Genre', 'The Campaign');

		$movie_node->appendChild($child_node_genre);

		$child_node_ratings = $dom->createElement('Ratings', 6.2);

		$movie_node->appendChild($child_node_ratings);

		$root->appendChild($movie_node);

		$dom->appendChild($root);

	$dom->save($xml_file_name);

	echo "$xml_file_name has been successfully created";
?>

ここに、

  • 「$dom = 新しい DOMDocument();」 DOMDocument クラスのインスタンスを作成します。
  • 「$dom->encoding = 'utf-8';」 ドキュメントのエンコーディングを utf-8 に設定します
  • 「$dom->xmlVersion = '1.0';」 バージョン番号 1.0 を指定します
  • 「$dom->formatOutput = true;」 出力が適切にフォーマットされていることを保証します
  • 「$root = $dom->createElement('映画');」 Movies という名前のルート ノードを作成します
  • 「$attr_movie_id = new DOMAttr('movie_id', '5467');」 Movies ノードのムービー ID 属性を定義します
  • 「$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')」は、Movies ノードの子ノードを作成します。 ElementName は要素の名前 (タイトルなど) を指定します。 ElementValue は、子ノードの値 (キャンペーンなど) を設定します。
  • 「$root->appendChild($movie_node);」 movie_node 要素をルート ノードに追加します
  • 「$dom->appendChild($root);」 ルート ノードを XML ドキュメントに追加します。
  • 「$dom->save($xml_file_name);」 XML ファイルを Web サーバーのルート ディレクトリに保存します。
  • 「エコー」 。 $xml_file_name 。 'は正常に作成されました';” XML ファイルへのリンクを作成します。

アプリケーションをテストする

ファイル create_movies_list を phptuts/xml フォルダーに保存したと仮定して、URL を参照します。 http://localhost/phptuts/xml/create_movies_list.php

PHP を使用して XML ドキュメントを作成する

「movies_list_xml」リンクをクリックします

PHP を使用して XML ドキュメントを作成する

まとめ

  • XML Extensible Markup Language の頭字語です
  • XML は、システム間で情報を交換したり、アプリケーションの構成設定を保存したりするために使用できます。
  • DOM は、Document Object Model の頭字語です。 XML DOM は、XML ドキュメントをツリー構造として表示します。
  • XML パーサーは、XML ドキュメントを DOM ツリー構造のようなドキュメントに変換するプログラムです。
  • CDATA は、XML ドキュメントを解析するときに特殊文字を無視するために使用されます。
  • PHP シムを使用しますplexml_load_file: XML ドキュメントを読み取り、結果を数値配列として返します。
  • XML ファイルを作成するための PHP DOMDocument クラス。