【问题标题】:PHP SimpleXML is both an Object and an Array? Inconceivable!PHP SimpleXML 既是对象又是数组?不可思议!
【发布时间】:2009-09-17 23:03:09
【问题描述】:

好的,看看这个巫毒:

这段代码:

$xml = new SimpleXMLElement($xml);
 $var = $xml->QBXMLMsgsRs->ClassQueryRs;
 $vars = print_r($var,true);

返回:

    SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [requestID] => Q2xhc3NRdWVyeXw1
            [statusCode] => 0
            [statusSeverity] => Info
            [statusMessage] => Status OK
        )

    [ClassRet] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [ListID] => 80000002-1241128424
                    [TimeCreated] => 2009-04-30T17:53:44-05:00
                    [TimeModified] => 2009-04-30T17:53:44-05:00
                    [EditSequence] => 1241128424
                    [Name] => D1
                    [FullName] => D1
                    [IsActive] => true
                    [Sublevel] => 0
                )

            [1] => SimpleXMLElement Object
                (
                    [ListID] => 80000001-1241128320
                    [TimeCreated] => 2009-04-30T17:52:00-05:00
                    [TimeModified] => 2009-04-30T17:52:00-05:00
                    [EditSequence] => 1241128320
                    [Name] => K1
                    [FullName] => K1
                    [IsActive] => true
                    [Sublevel] => 0
                )

            [2] => SimpleXMLElement Object
                (
                    [ListID] => 80000003-1241128452
                    [TimeCreated] => 2009-04-30T17:54:12-05:00
                    [TimeModified] => 2009-04-30T17:54:12-05:00
                    [EditSequence] => 1241128452
                    [Name] => S1
                    [FullName] => S1
                    [IsActive] => true
                    [Sublevel] => 0
                )
        )

)

但是,这段代码:

$xml = new SimpleXMLElement($xml);
 $var = $xml->QBXMLMsgsRs->ClassQueryRs->ClassRet;
 $vars = print_r($var,true);

返回:

SimpleXMLElement Object
(
    [ListID] => 80000002-1241128424
    [TimeCreated] => 2009-04-30T17:53:44-05:00
    [TimeModified] => 2009-04-30T17:53:44-05:00
    [EditSequence] => 1241128424
    [Name] => D1
    [FullName] => D1
    [IsActive] => true
    [Sublevel] => 0
)

在我的一生中,我无法访问该对象的其余部分! Echo、print_r....如果我尝试访问特定变量,它就会消失!

【问题讨论】:

  • “你一直在用那个词。我不认为它意味着你认为它的意思。” ;)

标签: php xml


【解决方案1】:

PHP 的 SimpleXml 是一个实现 ArrayAccess 接口的对象,这意味着您可以使用数组样式语法引用元素。

【讨论】:

  • 仅供参考:这个问题已经被问过:stackoverflow.com/questions/664221/…
  • 当我尝试以数组的形式访问它时,我什么也得不到。当我将它作为对象访问时,我只会得到第一个结果。
  • 您能否也发布您的 xml,以便我们测试和重现该问题?
猜你喜欢
  • 2019-02-25
  • 2019-07-15
  • 1970-01-01
  • 2010-09-27
  • 2015-08-17
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
相关资源
最近更新 更多