📜  在PHP中将多维数组转换为 XML 文件

📅  最后修改于: 2022-05-13 02:24:09.568000             🧑  作者: Mango

在PHP中将多维数组转换为 XML 文件

给定一个多维数组,任务是将该数组转换为 XML 文件。要将多维数组转换为 xml 文件,请创建一个 XML 文件并使用 appendChild() 和 createElement()函数将数组元素添加到 XML 文件中。

例子:

  • 首先,创建一个PHP多维数组以将该数组转换为 XML 文件格式。
    $array = array (
        'company' => 'Gfg',
        'employe' => array (
            '0' => array (
                'name' => 'Jatin Das',
                'age' => '34'
            ),
            '1' => array (
                'name' => 'Mohit Mal',
                'age' => '30'
            ),
            '2' => array (
                'name' => 'Shubham Jha',
                'age' => '24'
            ),
            '3' => array (
                'name' => 'Harsha Bhosle',
                'age' => '29'
            )
        )
    );
    
  • 现在,您需要创建一个用户定义的函数generateXML()。
    function generateXML($data) {
          
        $title = $data['company'];
        $rowCount = count($data['employe']);
       
        // Create the xml document
        $xmlDoc = new DOMDocument();
       
        $root = $xmlDoc -> appendChild($xmlDoc ->
                                createElement("geeks"));
          
        $root -> appendChild($xmlDoc -> 
                            createElement("title", $title));
        $root -> appendChild($xmlDoc -> 
                      createElement("totalRows", $rowCount));
          
        $tabUsers = $root -> appendChild($xmlDoc ->
                                createElement('rows'));
       
        foreach($data['employe'] as $user) {
            if (!empty($user)) {
                $tabUser = $tabUsers -> appendChild($xmlDoc -> 
                                       createElement('employe'));
                foreach($user as $key => $val) {
                    $tabUser -> appendChild($xmlDoc ->
                                      createElement($key, $val));
                }
            }
        }
       
        header("Content-Type: text/plain");
       
        // Make the output
        $xmlDoc -> formatOutput = true;
       
        // Save xml file
        $file_name = str_replace(' ', '_', $title) . '.xml';
          
        $xmlDoc -> save($file_name);
       
        // Return xml file name
        return $file_name;
    }
    
  • 然后使用generateXML()函数并在其中传递数组数据以将数组转换为PHP的XML。
    generateXML($array);
    
  • 输出:
    
        Gfg
        4
        
            
                Jatin Das
                34
            
            
                Mohit Mal
                30
            
            
                Shubham Jha
                24
            
            
                Harsha Bhosle
                29