从SimpleXMLElement中检索属性

时间:2009-11-10 06:39:50

标签: php xml simplexml

如何获得给定对象的name变量。 $obj->@attributes['name'];显然不起作用。

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [name] => Address
        )

    [value] => Address
)

3 个答案:

答案 0 :(得分:3)

$obj['name']怎么样?

例如,如果你采用这部分代码:

$str = <<<XML
<root>
    <a name="test">
        glop
    </a>
</root>
XML;

$xml = simplexml_load_string($str);

这些:

var_dump($xml->a);

会得到你:

object(SimpleXMLElement)[2]
  public '@attributes' => 
    array
      'name' => string 'test' (length=4)
  string '
        glop
    ' (length=18)

var_dump($xml->a['name']);

会得到你:

object(SimpleXMLElement)[4]
  string 'test' (length=4)

并将其转换为字符串:

var_dump((string)$xml->a['name']);

最后得到你想要的东西:

string 'test' (length=4)

即,您只需使用array-access来获取属性值。

答案 1 :(得分:1)

对于SimpleXMLElement,您可以使用数组访问语法

访问属性
$obj['name']

或者,您可以输入

$obj->attributes()->name

答案 2 :(得分:0)

我相信这只是$obj['name']

有关详细信息,请参阅basic usage doc