【问题标题】:How to access PHP SimpleXMLElement attributes?如何访问 PHP SimpleXMLElement 属性?
【发布时间】:2016-07-06 21:37:26
【问题描述】:

这是我的 xml 对象。我无法在脚本的对象数组中解析它。

SimpleXMLElement Object(
[pagination] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [pageNumber] => 1
                [pageSize] => 100
                [totalAvailable] => 1
            )

    )

[users] => SimpleXMLElement Object
    (
        [0] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [id] => xxxxxxxx
                        [name] => xxxxx
                        [siteRole] => xxxxx
                        [lastLogin] => xxxxxx
                        [externalAuthUserId] =>
                    )
            )
    )
)

这是我的 PHP 代码:

foreach($xml2->users as $item) { 
$userName = $item->attributes()->name;
}

我做错了吗?

【问题讨论】:

标签: php xml xml-parsing simplexml


【解决方案1】:

我能够解决这个问题。这是修改后的代码:

foreach($xml2->users[0] as $user) { 
    $userName = $user['name'];
}

感谢 ymas 他指出正确。

【讨论】:

  • @StevenMoseley 这两种形式在技术上都是正确的,尽管我同意['name'] 格式更简洁。不过,这是一个边界编辑,因为它完全改变了 OP 的答案。
  • @IMSoP 好点,这是一个极端的编辑。但是,原来的答案会返回一个 SimpleXMLElement 对象,而不是一个字符串值,不是吗?
  • @StevenMoseley 不,$foo->attributes()->bar$foo['bar'] 返回完全相同的对象。 3v4l.org/a3tQo 如果你想要字符串值,你必须转换为字符串,例如$userName = (string)$user['name'];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 2016-02-27
  • 2013-03-27
  • 1970-01-01
相关资源
最近更新 更多