ホームページ > バックエンド開発 > PHPの問題 > PHPでXMLデータを配列に変換する方法(2つの方法)

PHPでXMLデータを配列に変換する方法(2つの方法)

PHPz
リリース: 2023-04-14 17:40:52
オリジナル
1776 人が閲覧しました

PHP はサーバーサイド プログラミングに広く使用されているプログラミング言語ですが、XML はデータを保存および送信するために多くのアプリケーションで使用される拡張可能なマークアップ言語です。 PHP では XML を簡単に配列に変換することができ、この技術を利用することで XML データを簡単に処理、操作することができます。

PHP には XML を配列に変換するためのさまざまなメソッドが用意されていますが、ここではよく使用される 2 つのメソッドを紹介します。

方法 1: 単純な XML 拡張機能を使用する

単純な XML 拡張機能は、PHP に付属する拡張機能であり、XML データを PHP 配列に迅速に変換するのに役立ちます。 simplexml_load_string() 関数を呼び出すだけで、XML 文字列に基づいて SimpleXMLElement オブジェクトが返され、オブジェクトのプロパティとメソッドを通じて XML データを取得できます。

次は簡単な例です:

$xmlString = '<?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>
</bookstore>';

$xml = simplexml_load_string($xmlString);

print_r($xml);
ログイン後にコピー

出力結果は次のとおりです:

SimpleXMLElement Object
(
    [book] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [category] => COOKING
                        )

                    [title] => Everyday Italian
                    [author] => Giada De Laurentiis
                    [year] => 2005
                    [price] => 30.00
                )

            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [category] => CHILDREN
                        )

                    [title] => Harry Potter
                    [author] => J.K. Rowling
                    [year] => 2005
                    [price] => 29.99
                )
        )
)
ログイン後にコピー

SimpleXMLElement オブジェクトが配列に変換され、各ノードが配置されていることがわかります。配列の要素になると、その属性もキーと値のペアになります。

方法 2: PHP DOM 拡張機能を使用する

PHP DOM 拡張機能は、XML ドキュメントと HTML ドキュメントの処理と操作に使用できる、広く使用されている PHP 拡張機能です。これが提供するメソッドを使用して XML ファイルを DOM オブジェクトに変換し、DOM 関連のメソッドを通じてそれらを配列に変換できます。

次は簡単な例です:

$xmlString = '<?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>
</bookstore>';

$dom = new DOMDocument();
$dom->loadXML($xmlString);
$books = $dom->getElementsByTagName('book');
$data = array();

foreach ($books as $book) {
    $bookData = array(
        'category' => $book->getAttribute('category'),
        'title' => $book->getElementsByTagName('title')->item(0)->nodeValue,
        'author' => $book->getElementsByTagName('author')->item(0)->nodeValue,
        'year' => $book->getElementsByTagName('year')->item(0)->nodeValue,
        'price' => $book->getElementsByTagName('price')->item(0)->nodeValue
    );

    $data[] = $bookData;
}

print_r($data);
ログイン後にコピー

出力は次のとおりです:

Array
(
    [0] => Array
        (
            [category] => COOKING
            [title] => Everyday Italian
            [author] => Giada De Laurentiis
            [year] => 2005
            [price] => 30.00
        )

    [1] => Array
        (
            [category] => CHILDREN
            [title] => Harry Potter
            [author] => J.K. Rowling
            [year] => 2005
            [price] => 29.99
        )
)
ログイン後にコピー

PHP DOM 拡張機能を使用すると、XML ファイルを次のように変換できることがわかります。 DOM オブジェクトを取得し、DOM オブジェクトによって提供されるメソッドを使用して各ノードの値を取得し、最終的にそれを PHP 配列に変換します。

概要

単純な XML 拡張機能を使用する場合でも、PHP DOM 拡張機能を使用する場合でも、XML ファイルを PHP 配列に簡単に変換できます。必要に応じて適切な方法を選択するだけです。 PHP 配列を使用すると、XML データを簡単に処理および操作できます。

以上がPHPでXMLデータを配列に変換する方法(2つの方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート