我怎样才能在PHP中ECHO这个SimpleXMLElement中的OK属性?

时间:2013-07-19 19:23:15

标签: php xml

如何在PHP中echo这个SimpleXMLElement中的OK属性?

我一直试图将这个问题弄清楚几个小时,但我无法解决。

SimpleXMLElement Object(
    [@attributes] => Array(
        [OK] => No
    )
    [NEWS] => SimpleXMLElement Object(
        [NEWS] => Blocked
    )
)

3 个答案:

答案 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;