How can I parse an XML with multiple root elements using PHP?(如何使用PHP解析具有多个根元素的XML?)
本文介绍了如何使用PHP解析具有多个根元素的XML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用PHP读取此XML文件,并且我有两个根元素。我用PHP编写的代码只读取一个根元素,当我添加另一个根元素(<action>
)时,它会给我一个错误。
我想这样做:if($xml->action=="register")
然后打印所有参数。
这是我的XML文件:
<?xml version='1.0' encoding='ISO-8859-1'?>
<action>register</action>
<paramters>
<name>Johnny B</name>
<username>John</username>
</paramters>
这是我的PHP脚本:
<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
{
echo $child->getName() . ": " . $child . "<br />";
}
?>
我真的不知道怎么做……
推荐答案
修复您的xml,它无效。XML文件只能有一个根元素。
有效的XML示例:
<?xml version='1.0' encoding='ISO-8859-1'?>
<action>
<type>register</type>
<name>Johnny B</name>
<username>John</username>
</actions>
或者如果您只希望参数有自己的元素:
<?xml version='1.0' encoding='ISO-8859-1'?>
<action type="register">
<name>Johnny B</name>
<username>John</username>
</actions>
或者如果您想要多个操作:
<?xml version='1.0' encoding='ISO-8859-1'?>
<actions>
<action type="register">
<name>Johnny B</name>
<username>John</username>
</action>
</actions>
编辑:
正如我在评论中所说,您的老师应该修复他的XML。它是invalid。此外,他还应该将他的XML通过a validator。
如果您真的迫不及待,可以引入人工根元素,但这是非常糟糕的做法,应该不惜一切代价避免:
$xmlstring = str_replace(
array('<action>','</paramters>'),
array('<root><action>', '</paramters></root>'),
$xmlstring
);
这篇关于如何使用PHP解析具有多个根元素的XML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何使用PHP解析具有多个根元素的XML?


猜你喜欢
- PHP - if 语句中的倒序 2021-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- PHP foreach() 与数组中的数组? 2022-01-01