如何echo
在 PHP 中这个 SimpleXMLElement 中的 OK 属性?
我一直试图解决这个问题几个小时,但我无法解决它。
SimpleXMLElement Object(
[@attributes] => Array(
[OK] => No
)
[NEWS] => SimpleXMLElement Object(
[NEWS] => Blocked
)
)
如果您仔细查看手册,您会发现其中有一个attributes()
功能。
只要您没有任何自定义命名空间,您可以简单地通过 调用您的 XML 对象attributes
,然后通过它的名称调用某个属性。
echo $xml->attributes()->OK;
应该返回No
。
我不确定您是否对 的输出感到困惑print_r
,但该示例的基础 XML 类似于<foo OK="No"><NEWS>Blocked</NEWS></foo>
,所以 OK 是一个普通的 XML 属性。
正如手册的基本使用示例所示,使用 SimpleXML 访问属性的最简单方法是使用['attribute_name']
. 所以在你的情况下,它会是这样的:
echo $node['OK'];
请注意,与所有访问器一样,它返回另一个 SimpleXML 对象,而不是字符串,因此如果您将其传递给代码的其他部分,您应该使用以下语法将其转换为字符串(string)
以避免绊倒其他代码:
$ok_value = (string)$node['OK'];
正如其他人所指出的,还有一种attributes()
方法可以让您遍历节点的所有属性,或访问特定 XML 命名空间中的属性。这两行相当于上面的两行:
echo $node->attributes()->OK;
$ok_value = (string)$node->attributes()->OK;
$result = [PUT OBJECT HERE]->attributes()->OK;
echo $result;