如何在 PHP 中回显此 SimpleXMLElement 中的 OK 属性? [复制]

Posted

技术标签:

【中文标题】如何在 PHP 中回显此 SimpleXMLElement 中的 OK 属性? [复制]【英文标题】:How can I ECHO in PHP the OK attribute in this SimpleXMLElement? [duplicate] 【发布时间】:2013-07-19 04:53:34 【问题描述】:

我如何在 phpecho 这个 SimpleXMLElement 中的 OK 属性?

我已经尝试解决这个问题几个小时,但我无法解决它。

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

【问题讨论】:

你到底尝试了什么? 【参考方案1】:

如果您仔细查看手册,您会发现有一个attributes() 函数。

只要您没有任何自定义命名空间,您可以简单地通过 attributes 调用您的 XML 对象,然后通过它的名称调用某个属性。

echo $xml->attributes()->OK;

应该返回No

【讨论】:

【参考方案2】:

我不确定您是否对print_r 的输出感到困惑,但该示例的底层XML 类似于<foo OK="No"><NEWS>Blocked</NEWS></foo>,所以OK 是一个普通的XML 属性。

正如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;

【讨论】:

【参考方案3】:
 $result = [PUT OBJECT HERE]->attributes()->OK;
  echo $result;

【讨论】:

以上是关于如何在 PHP 中回显此 SimpleXMLElement 中的 OK 属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中回显 .html 文件的全部内容?

如何在 PHP 中回显 XML 文件

如何在 PHP 中回显或打印数组?

如何在 PHP 中回显 JSON [关闭]

如何使用 PHP 从 mySQLi 查询中回显每一行?

如何使用视图在 php 中回显当前 Laravel 版本的版本?