如何在PHP中echo
这个SimpleXMLElement中的OK属性?
我一直试图将这个问题弄清楚几个小时,但我无法解决。
SimpleXMLElement Object(
[@attributes] => Array(
[OK] => No
)
[NEWS] => SimpleXMLElement Object(
[NEWS] => Blocked
)
)
答案 0 :(得分:2)
如果仔细查看本手册,您会发现有attributes()
功能。
只要您没有任何自定义命名空间,就可以通过attributes
简单地调用XML对象,然后按名称调用某个属性。
echo $xml->attributes()->OK;
应该返回No
。
答案 1 :(得分:1)
我不确定你是否绊倒print_r
的输出,但该示例的基础XML类似于<foo OK="No"><NEWS>Blocked</NEWS></foo>
,所以OK是普通的XML属性。< / p>
正如manual's basic usage examples所示,使用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;
答案 2 :(得分:0)
$result = [PUT OBJECT HERE]->attributes()->OK;
echo $result;