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

createXML() 函数:
为了更好的可用性,所有数组到 XML 的转换代码都将组合在一个 PHP 函数中。
'createXML()' 函数将 PHP 多维数组转换为 XML 文件。
数据数组需要作为“createXML()”函数中的参数传递。
'createXML()' 函数使用 DOMDocument 类创建一个 XML 文档,并将 PHP 数组内容插入到这个 XML 文档中。
最后,将 XML 文档保存为指定文件路径中的 XML 文件。

function createXML($data) {
    $title = $data['title'];
    $rowCount = count($data['users']);

    //create the xml document
    $xmlDoc = new DOMDocument();

    $root = $xmlDoc->appendChild($xmlDoc->createElement("user_info"));
    $root->appendChild($xmlDoc->createElement("title",$title));
    $root->appendChild($xmlDoc->createElement("totalRows",$rowCount));
    $tabUsers = $root->appendChild($xmlDoc->createElement('rows'));

    foreach($data['users'] as $user){
        if(!empty($user)){
            $tabUser = $tabUsers->appendChild($xmlDoc->createElement('user'));
            foreach($user as $key=>$val){
                $tabUser->appendChild($xmlDoc->createElement($key, $val));
            }
        }
    }

    header("Content-Type: text/plain");

    //make the output pretty
    $xmlDoc->formatOutput = true;

    //save xml file
    $file_name = str_replace(' ', '_',$title).'_'.time().'.xml';
    $xmlDoc->save("files/" . $file_name);

    //return xml file name
    return $file_name;
}

将 XML 转换为 PHP 关联数组

现在我们将从文件中读取 XML 数据并使用 PHP 将 XML 转换为数组。

  • 使用 PHP 中的 file_get_contents() 函数将整个文件读入字符串。
  • 使用 PHP 中的 simplexml_load_string() 函数将 XML 字符串转换为对象。
  • 使用 json_encode() 函数将对象转换为 JSON。
  • 使用 json_decode() 函数将 JSON 数据转换为关联数组。
//xml file path
$path = "files/path-to-document.xml";
//read entire file into string
$xmlfile = file_get_contents($path);
//convert xml string into an object
$xml = simplexml_load_string($xmlfile);
//convert into json
$json  = json_encode($xml);
//convert into associative array
$xmlArr = json_decode($json, true);
print_r($xmlArr);

将 XML 文件转换为以下关联数组示例代码。

Array
(
    [title] => Users Information
    [totalRows] => 3
    [rows] => Array
        (
            [user] => Array
                (
                    [0] => Array
                        (
                            [name] => John Doe
                            [email] => john@doe.com
                        )
                    [1] => Array
                        (
                            [name] => Merry Moe
                            [email] => merry@moe.com
                        )
                    [2] => Array
                        (
                            [name] => Hellary Riss
                            [email] => hellary@riss.com
                        )
                )
        )
)

PHP 多维数组保存为XML

以下多维数组将使用 PHP 保存为 XML 文件

$data = array(
    'title' => 'Users Information',
    'users' => array(
        array('name' => 'John Doe', 'email' => 'john@doe.com'),
        array('name' => 'Merry Moe', 'email' => 'merry@moe.com'),
        array('name' => 'Hellary Riss', 'email' => 'hellary@riss.com')
    )
);

PHP 数组到 XML 文件的转换

我们只需要使用“createXML()”函数并其中传递数据数组即可将数组转换为 PHP 中的 XML。

echo createXML($data);

示例代码将创建以下 XML 文档。

<?xml version="1.0"?>
<user_info>
  <title>Users Information</title>
  <totalRows>3</totalRows>
  <rows>
    <user>
      <name>John Doe</name>
      <email>john@doe.com</email>
    </user>
    <user>
      <name>Merry Moe</name>
      <email>merry@moe.com</email>
    </user>
    <user>
      <name>Hellary Riss</name>
      <email>hellary@riss.com</email>
    </user>
  </rows>
</user_info>
在 PHP 中将数组转换为 XML 或者将XML转换为数组

XML(可扩展标记语言)是一种标记语言,它以机器可读和人类可读的格式对文档进行编码。
通常,XML 用于存储和传输数据。

我们可以在 Web 应用程序中以多种方式使用 XML。
如果我们担心数据库大小并希望减少数据库使用,XML 可以从数据库中释放空间。
我们可以将数据存储在 XML 文件中并从 XML 文件中检索数据而不是数据库,而无需连接到数据库。

在本教程中,我们将向我们展示如何将 PHP 关联或者多维数组转换为 XML 并存储在 XML 文件中。
此外,示例代码显示了如何在 PHP 中解析 XML 文件并将 XML 数据转换为数组。

日期:2020-06-02 22:15:26 来源:oir作者:oir