
在PHP 中將陣列轉換為SimpleXML 物件
簡介
簡介
數組到SimpleXML 轉換要將數組轉換為SimpleXML 對象,我們可以使用自定義函數,遞歸地迭代數組並相應地將元素和屬性添加到SimpleXML 物件。此函數可以如下實現:1 2 3 4 5 6 7 8 9 10 11 12 13 | function array_to_xml( $data , & $xml_data ) {
foreach ( $data as $key => $value ) {
if ( is_array ( $value )) {
if ( is_numeric ( $key )) {
$key = 'item' . $key ;
}
$subnode = $xml_data ->addChild( $key );
array_to_xml( $value , $subnode );
} else {
$xml_data ->addChild( "$key" ,htmlspecialchars( "$value" ));
}
}
}
|
登入後複製
範例
考慮以下陣列:1 2 3 | $data = array ( 'total_stud' => 500,
0 => array ( 'student' => array ( 'id' => 1, 'name' => 'abc' , 'address' => array ( 'city' => 'Pune' , 'zip' => '411006' ))),
1 => array ( 'student' => array ( 'id' => 2, 'name' => 'xyz' , 'address' => array ( 'city' => 'Mumbai' , 'zip' => '400906' ))));
|
登入後複製
將此陣列轉換為SimpleXML 物件,我們建立SimpleXMLElement 的實例並將其傳遞給array_to_xml函數:1 2 | $xml_data = new SimpleXMLElement( '<?xml version="1.0"?><data></data>' );
array_to_xml( $data , $xml_data );
|
登入後複製
這將產生以下XML 文件:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version= "1.0" ?>
<data>
<total_stud>500</total_stud>
<student>
<id>1</id>
<name>abc</name>
<address>
<city>Pune</city>
<zip>411006</zip>
</address>
</student>
<student>
<id>1</id>
<name>abc</name>
<address>
<city>Mumbai</city>
<zip>400906</zip>
</address>
</student>
</data>
|
登入後複製
最後的註解
array_toxml 函數可以處理任何深度組和複雜性。它是一種多功能工具,可用於將陣列轉換為 XML 文件以用於各種目的,例如資料匯出或序列化。 SimpleXML 擴充功能提供了幾種用於操作和保存 XML 資料的附加方法,使其成為 PHP 中 XML 處理的寶貴工具。 以上是如何將 PHP 陣列轉換為 SimpleXML 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!