多くの場合、後で使用するためにデータを XML 形式でデータベースまたはファイルに保存する必要があります。この要件を満たすには、データを XML に変換し、XML ファイルを保存する必要があります。
#SimpleXML 拡張関数は、XML をオブジェクトに変換するためのツールセットを提供します。これらのオブジェクトは、通常のプロパティ セレクターと配列イテレーターを処理します。
例 1:
<?php // 将php数组转换为xml文档的代码 //定义一个将数组转换成xml的函数。 function arrayToXml($array, $rootElement = null, $xml = null) { $_xml = $xml; // 如果没有$rootElement,则插入$rootElement if ($_xml === null) { $_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : '<root/>'); } // 访问所有键值对 foreach ($array as $k => $v) { // 如果有嵌套数组 if (is_array($v)) { // 调用嵌套数组的函数 arrayToXml($v, $k, $_xml->addChild($k)); } else { $_xml->addChild($k, $v); } } return $_xml->asXML(); } // 创建一个用于演示的数组 $my_array = array ( 'name' => 'GFG', 'subject' => 'CS', // 创建嵌套数组。 'contact_info' => array ( 'city' => 'Noida', 'state' => 'UP', 'email' => '448199179@qq.com' ), ); // 调用arrayToxml函数并打印结果 echo arrayToXml($my_array); ?>
出力:
<?xml version="1.0"?> <root> <name> GFG </name> <subject> CS </subject> <contact_info > <city > Noida < /city > <state > UP < /state > <email > 448199179@qq.com </email> <contact_info> <root>
上記の問題は、array_walk_recursive() 関数を使用して解決できます。この関数は配列を XML ドキュメントに変換します。配列のキーは値に変換され、配列の値は XML の要素に変換されます。
例 2:
<?php // 将php数组转换为xml文档的代码 //创建一个数组 $my_array = array ( 'a' => 'x', 'b' => 'y', // creating nested array 'another_array' => array ( 'c' => 'z', ), ); // 这个函数使用root元素创建一个xml对象。 $xml = new SimpleXMLElement('<root/>'); // 这个函数重新将数组元素添加到xml文档中 array_walk_recursive($my_array, array ($xml, 'addChild')); // 这个函数打印xml文档。 print $xml->asXML(); ?>
出力:
<?xml version =“1.0”?> <root> <x> a </ x> <y> b </ y> <z> c </ z> </ root>
注:
システムがエラーの種類:
PHP Fatal error: Uncaught Error: Class ‘SimpleXMLElement’ not found in /home/6bc5567266b35ae3e76d84307e5bdc78.php:24 ,
次に、php-xml、php-simplexml パッケージをインストールします。
この記事は、PHP で配列を SimpleXML に変換する方法に関するものです。困っている友人の役に立てば幸いです。
以上がPHPで配列をSimpleXMLに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。