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

PHPでXMLを配列に変換する方法

青灯夜游
青灯夜游オリジナル
2021-02-24 11:00:223433ブラウズ

方法: 最初に simplexml_load_string() を使用して XML 文字列を SimpleXMLElement オブジェクトに変換し、次に json_encode() を使用してオブジェクトを JSON データに変換し、最後に json_decode() を使用して JSON データを配列に変換します。

PHPでXMLを配列に変換する方法

#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php 変換xml 配列番号

1 関数:

/*
@desc:xml转数组
@param data xml字符串
@return arr 解析出的数组
*/
function xmltoarray($data){
$obj = simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);
$json = json_encode($obj);
$arr = json_decode($json, true);      
return $arr;
}

simplexml_load_string() 関数は、整形式の XML 文字列を SimpleXMLElement オブジェクトに変換します。


json_encode() は、変数を JSON エンコードするために使用されます。この関数は、正常に実行された場合は JSON データを返し、それ以外の場合は FALSE を返します。

json_decode() 関数は、JSON 形式の文字列をデコードし、PHP 変数 (オブジェクトまたは配列) に変換するために使用されます。

json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

Parameters

    ##json_string: デコードされる JSON 文字列は、UTF-8 でエンコードされたデータである必要があります
  • assoc: これがパラメータが TRUE の場合は配列が返され、FALSE の場合はオブジェクトが返されます。
  • Depth: 再帰の深さを指定する整数型パラメータ
  • オプション: バイナリ マスク。現在、JSON_BIGINT_AS_STRING のみがサポートされています。
2. テスト:


a. コード:

<?php
$string = <<<XML
<?xml version=&#39;1.0&#39;?> 
<document>
<title>Forty What?</title>
<from>Joe</from>
<to>Jane</to>
<body>
I know that&#39;s the answer -- but what&#39;s the question?
</body>
</document>
XML;
$arr = xmltoarray($string);
var_dump($arr);

b. 出力:

array(4) {
["title"]=>
string(11) "Forty What?"
["from"]=>
string(3) "Joe"
["to"]=>
string(4) "Jane"
["body"]=>
string(57) "
I know that&#39;s the answer -- but what&#39;s the question?
"
}

プログラミング関連の知識について詳しくは、

プログラミング ビデオ

をご覧ください。 !

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。