迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

在 PHP 中将 XML 转换为数组

作者:迹忆客 最近更新:2023/03/15 浏览次数:

本文将介绍如何在 PHP 中将 XML 转换为数组。

在 PHP 中使用 simplexml_load_string()json_encode()json_decode() 函数将 XML 转换为数组

我们可以通过一系列转换将 XML 数据表示为 PHP 数组。

我们可以使用 simplexml_load_string() 函数将 XML 字符串解释为一个对象。该函数将 XML 字符串作为其第一个参数。

我们可以指定一个类作为第二个选项。该函数将返回指定类的对象。该函数的第三个参数是 LIBXML 常量。

接下来,我们应该使用 json_encode() 函数将对象转换为 JSON。对于最后一部分,我们可以使用带有参数 TRUEjson_decode() 函数将 JSON 转换为数组。

例如,考虑以下 XML 数据。

<students>
 <bachelors>
 <name>Jack</name>
 <name>Hari</name>
 </bachelors>
 <masters>
 <name>Sia</name>
 <name>Paul</name>
 </masters>
</students>

创建一个变量 $xmlstr 并将所有 XML 作为字符串存储在变量中。接下来,创建另一个变量 $XML 并将 simplexml_load_string() 函数分配给它。

在函数中,将 $xmlstr 设置为第一个参数,将 SimpleXMLElement 设置为类,将 LIBXML_NOCDATA 设置为第三个参数。接下来,使用 json_encode() 函数将 $XML 转换为 JSON。

然后,使用 json_decode() 函数将 JSON 转换为数组。不要忘记包含 TRUE 作为 json_decode() 函数的第二个参数。最后,打印数组。

此处,LIBXML_NOCDATA 常量将字符数据 (CDATA) 合并为文本节点。因此,我们可以使用这些不同的 PHP 函数将 XML 转换为 PHP 数组。

$xmlstr ='
<students>
 <bachelors>
 <name>Jack</name>
 <name>Hari</name>
 </bachelors>
 <masters>
 <name>Sia</name>
 <name>Paul</name>
 </masters>
</students>';
$XML = simplexml_load_string($xmlstr, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($XML);
$arr = json_decode($json,TRUE);
print_r($arr);

输出:

Array ( [bachelors] => Array ( [name] => Array ( [0] => Jack [1] => Hari ) ) [masters] => Array ( [name] => Array ( [0] => Sia [1] => Paul ) ) ) 

使用 simplexml_load_file() 函数并将其类型转换为数组以将 XML 转换为 PHP 中的数组

我们可以使用 simplexml_load_file() 函数将 XML 解释为一个对象。然后,我们可以通过类型转换将对象转换为数组。

该函数将 XML 文件的路径作为第一个参数。该函数几乎类似于 simplexml_load_string() 函数。我们可以创建一个 XML 文件并在 simplexml_load_file() 函数中使用它的路径。

例如,我们可以在第一种方法中使用相同的 XML 文件,将 XML 文件保存为 file.xml,并在 PHP 中创建一个变量 $XML。将 simplexml_load_file() 分配给以 file.xml 作为参数的变量。

接下来,创建一个 $arr 变量并将 $XML 变量类型转换为一个数组。将类型转换的数组分配给 $arr 变量。最后,使用 print_r() 函数打印 $arr 变量。

这样,我们就可以使用 simplexml_load_file() 函数来加载 XML 文件并将其转换为数组。

$XML = simplexml_load_file('file.xml');
$arr = (array)$XML;
print_r($arr);

输出:

Array ( [bachelors] => SimpleXMLElement Object ( [name] => Array ( [0] => Jack [1] => Hari ) ) [masters] => SimpleXMLElement Object ( [name] => Array ( [0] => Sia [1] => Paul ) ) ) 

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便