📜  如何在PHP中将数组转换为 SimpleXML

📅  最后修改于: 2022-05-13 01:54:11.008000             🧑  作者: Mango

如何在PHP中将数组转换为 SimpleXML

很多时候需要将数据以 XML 格式存储到数据库或文件中以备后用。为了满足这一要求,需要将数据转换为 XML 并保存 XML 文件。

SimpleXML 扩展函数提供了将 XML 转换为对象的工具集。这些对象处理普通的属性选择器和数组迭代器。

示例 1:

');
    }
      
    // Visit all key value pair
    foreach ($array as $k => $v) {
          
        // If there is nested array then
        if (is_array($v)) { 
              
            // Call function for nested array
            arrayToXml($v, $k, $_xml->addChild($k));
            }
              
        else {
              
            // Simply add child element. 
            $_xml->addChild($k, $v);
        }
    }
      
    return $_xml->asXML();
}
  
// Creating an array for demo
$my_array = array (
'name' => 'GFG',
'subject' => 'CS',
  
    // Creating nested array.
    'contact_info' => array (
    'city' => 'Noida',
    'state' => 'UP',
    'email' => 'feedback@geeksforgeeks.org'
    ),
);
  
// Calling arrayToxml Function and printing the result
echo arrayToXml($my_array);
?>

输出:



     GFG 
     CS 
    
         Noida < /city >
         UP < /state >
         feedback@geeksforgeeks.org 
    

可以使用 array_walk_recursive()函数解决上述问题。此函数将数组转换为 xml 文档,其中数组的键转换为值,数组的值转换为 xml 的元素。



示例 2:

 'x',
    'b' => 'y',
      
    // creating nested array
    'another_array' => array (
        'c' => 'z',
    ),
);
  
// This function create a xml object with element root.
$xml = new SimpleXMLElement('');
  
// This function resursively added element
// of array to xml document
array_walk_recursive($my_array, array ($xml, 'addChild'));
  
// This function prints xml document.
print $xml->asXML();
?>

输出:



        a 
        b 
        c 

注意:如果系统生成错误类型: PHP Fatal error: Uncaught Error: Class 'SimpleXMLElement' not found in /home/6bc5567266b35ae3e76d84307e5bdc78。 PHP:24 然后简单地安装php-xml, php-simplexml包。