gpt4 book ai didi

php - 如何使用 php 的 SimpleXML 获取 XML 的第一个标签的名称?

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:04 26 4
gpt4 key购买 nike

我正在使用 simplexml_load_string() 解析 XML 字符串, 但我注意到我没有得到第一个标签的名称。

例如,我有这两个 xml 字符串:

$s = '<?xml version="1.0" encoding="UTF-8"?>
<ParentTypeABC>
<chidren1>
<children2>1000</children2>
</chidren1>
</ParentTypeABC>
';

$t = '<?xml version="1.0" encoding="UTF-8"?>
<ParentTypeDEF>
<chidren1>
<children2>1000</children2>
</chidren1>
</ParentTypeDEF>
';

注意它们几乎相同,唯一的区别是第一个节点为 <ParentTypeABC>另一个为<ParentTypeDEF>

然后我将它们转换为 SimpleXML 对象:

$o = simplexml_load_string($s);
$p = simplexml_load_string($t);

但是我有两个相同的对象,它们都没有出现“顶部”节点的名称,ParentTypeABCParentTypeDEF (我使用 print_r() 检查对象):

// with top node "ParentTypeABC"
SimpleXMLElement Object
(
[chidren1] => SimpleXMLElement Object
(
[children2] => 1000
)

)
// with top node "ParentTypeDEF"
SimpleXMLElement Object
(
[chidren1] => SimpleXMLElement Object
(
[children2] => 1000
)

)

那么我应该如何知道顶级节点的名称呢?如果我解析未知的 XML 并且我需要知道顶级节点名称是什么,我该怎么办?

simplexml_load_string()中有选项吗?我可以用吗?

我知道有很多方法可以用 PHP 解析 XML,但我希望它尽可能简单,并获得一个简单的对象或数组,我可以轻松导航。

我做了一个简单的例子here摆弄。

最佳答案

SimpleXML 有一个 getName() 方法。

echo $xml->getName();

这应该返回相应节点的名称,无论是否为 root。

http://php.net/manual/en/simplexmlelement.getname.php

关于php - 如何使用 php 的 SimpleXML 获取 XML 的第一个标签的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26490501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com