SimpleXMLElement数组只返回一个元素

时间:2014-03-14 19:30:05

标签: php xml simplexml

我有以下简单的XML结构var_dump' ed:

var_dump($data)导致:

object(SimpleXMLElement)[269]
  public 'columns' => 
    object(SimpleXMLElement)[283]
      public 'column' => 
        array (size=11)
          0 => 
            object(SimpleXMLElement)[274]
              public '@attributes' => 
                array (size=2)
                  'name' => string 'test' (length=10)
                  'display' => string 'test ID' (length=11)
          1 => 
            object(SimpleXMLElement)[273]
              public '@attributes' => 
                array (size=2)
                  'name' => string 'blah' (length=8)
                  'display' => string 'blah' (length=8)
          ....
          ....
          ....
  public 'row' => 
    array (size=6)
      0 => 
        object(SimpleXMLElement)[270]
          public '@attributes' => 
            array (size=11)
              'test' => string '3445543' (length=8)
              'blah' => string 'Some Text' (length=13)
      1 => 
        object(SimpleXMLElement)[279]
          public '@attributes' => 
            array (size=11)
              'test' => string '3445543' (length=8)
              'blah' => string 'Some Text' (length=13)
      2 => 
        object(SimpleXMLElement)[278]
          ....
          ....
          ....

我缩短了输出,因为你可以看到只是为了节省空间。但是你可以看到row数组包含6个元素。

现在,如果我这样做:

echo count($data->row);我按预期得到6

如果我这样做:

var_dump($data->row);我明白了......

object(SimpleXMLElement)[270]
  public '@attributes' => 
    array (size=11)
      'test' => string '3445543' (length=8)
      'blah' => string 'Some Text' (length=13)

打印出一个元素。没有数组。

为什么数组的计数返回正确的值但是获取数组只获取数组的第一个元素?我如何获得所有元素?

0 个答案:

没有答案