首頁 > 後端開發 > php教程 > 如何將 PHP 陣列轉換為 SimpleXML 物件?

如何將 PHP 陣列轉換為 SimpleXML 物件?

Barbara Streisand
發布: 2024-12-19 12:03:11
原創
411 人瀏覽過

How Can I Convert a PHP Array to a SimpleXML Object?

在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; // Dealing with numeric keys

            }

            $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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板