ホームページ  >  記事  >  バックエンド開発  >  PHP XML を配列に変換

PHP XML を配列に変換

王林
王林オリジナル
2024-08-29 13:09:581063ブラウズ

XML ドキュメントを PHP 配列に変換するために使用します。場合によっては、XML ドキュメントを受信データとして処理したり、データを XML ドキュメントとしてエクスポートしたりする必要があります。 XML 言語は、Web サイトまたはアプリケーション間でのデータ共有を構造化するために利用されます。そのため、XML データをスムーズに操作できるように XML から配列への操作を提供します。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

変換中に、以下で説明するいくつかの関数を使用する必要があります –

  • file_get_contents() 関数: この関数は、ファイルを文字列として読み取ります。
  • simplexml_load_string() 関数: この関数は、XML を解析してオブジェクトを返すために使用されます。
  • json_encode() 関数: この関数は、JSON 文字列をエンコードし、JSON 値を返します。
  • json_decode() 関数: この関数は、JSON 文字列 (PHP 変数) をデコードします。

PHP XML を配列に変換する作業

XML ドキュメントを受け取り、それを配列に変換します。 ExXMl.xml という XML ドキュメントがあるとします。次に、それを配列に変換したいと思います。したがって、変換するには、いくつかの手順に従う必要があります –

  1. file_get_content() 関数を使用して ExXMl.xml ファイルを PHP にインポートします。これにより、ExXMl.xml ファイルが文字列として読み取られ、変数に格納されます。
  2. 次に、読み取られた文字列データは、simplexml_load_string() 関数を使用してオブジェクトに変換されます。
  3. 最後に、json_decode() 関数を使用して json 文字列をデコードし、json エンコードされた文字列を配列に変換します。

XML ファイルをロードして PHP 配列に変換する例 –

例 #1

まず、「ExXML.xml」という名前で XML データ ファイルを作成し、データの内容を –

として作成します。

コード:

<?xml version="1.0" encoding="utf-8"?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<subject> English </subject>
</firstname>
<firstname name='Sam'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<subject> English </subject>
</firstname>
<firstname name='Praveen'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next,we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read XML file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

出力:

PHP XML を配列に変換

開始タグと終了タグはすべて適切です。次に、ロードされたオブジェクトは、 json_encode () 関数と json_decode() 関数を使用して、それぞれ PHP 配列としてエンコードおよびデコードされます。

例 #2

エラーと解析エラーが発生する例 -

次に、PHP XML を配列に変換するための PHP コードを記述します。ここでは、以下に示すように、XML タグの不一致または適切な構造化が原因で、XML を配列に実行するときに発生した解析エラーが表示されます –

コード:

<?xml version='1.0'?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<!-- missing -->
</firstname>
<firstname name='Sanjay'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<!-- mismatch tag -->
<subject> English <subject>
</firstname>
<firstname name='Parvez'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next, we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// check xml load or not
if ($obj == FALSE) {
echo "There were errors to parse the XML file.\n";
exit;
}
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

出力:

PHP XML を配列に変換

開始タグと終了タグの 1 つが一致せず、タグの 1 つが欠落しています (XML ファイルでコメント タグで示されているように)。  上記の出力に見られるように、警告は XML ファイルの解析およびロード中に発生します。したがって、警告を読んで XML ファイルを修正し、再度ロードしてください。

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

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