首頁  >  文章  >  後端開發  >  如何在PHP中將陣列轉換為SimpleXML

如何在PHP中將陣列轉換為SimpleXML

藏色散人
藏色散人原創
2019-01-25 13:22:313228瀏覽

很多時候需要將資料作為XML格式儲存到資料庫或檔案中以供日後使用。要滿足此要求,需要將資料轉換為XML並儲存XML檔案。

如何在PHP中將陣列轉換為SimpleXML

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 : &#39;<root/>&#39;); 
    } 
      
    // 访问所有键值对 
    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 ( 
&#39;name&#39; => &#39;GFG&#39;, 
&#39;subject&#39; => &#39;CS&#39;, 
  
    // 创建嵌套数组。
    &#39;contact_info&#39; => array ( 
    &#39;city&#39; => &#39;Noida&#39;, 
    &#39;state&#39; => &#39;UP&#39;, 
    &#39;email&#39; => &#39;448199179@qq.com&#39;
    ), 
); 
  
// 调用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 ( 
    &#39;a&#39; => &#39;x&#39;, 
    &#39;b&#39; => &#39;y&#39;, 
      
    // creating nested array 
    &#39;another_array&#39; => array ( 
        &#39;c&#39; => &#39;z&#39;, 
    ), 
); 
  
// 这个函数使用root元素创建一个xml对象。
$xml = new SimpleXMLElement(&#39;<root/>&#39;); 
  
// 这个函数重新将数组元素添加到xml文档中
array_walk_recursive($my_array, array ($xml, &#39;addChild&#39;)); 
  
// 这个函数打印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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn