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?
基础教程推荐
猜你喜欢
- 在多维数组中查找最大值 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01