提问者:小点点

从SimpleXML访问@属性


访问SimpleXML对象的@attribute部分时遇到问题。 当我var_dump整个对象时,我得到了正确的输出,当我var_dump对象的其余部分(嵌套标记)时,我得到了正确的输出,但是当我跟踪文档和var_dump$XML->office->{'@attributes'}时,我得到了一个空对象,尽管第一个var_dump清楚地显示了要输出的属性。

有谁知道我做错了什么/我怎么做?


共3个答案

匿名用户

您可以通过调用XML节点上的attributes()函数来获取XML元素的属性。 然后可以var_dump函数的返回值。

有关更多信息,请访问php.net http://php.net/simplexmlelement.attributes

页面中示例代码:

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}

匿名用户

试试这个

$xml->attributes()->Token

匿名用户

我以前用过很多次获取@attributes,就像下面这样,它有点长。

$att = $xml->attributes();
echo $att['field'];

它应该更容易,您可以一次性获得以下格式的属性:

$xml['field'];

其他备选方案有:

$xml->attributes()->{'field'};
$xml->attributes()->field;
$xml->{"@attributes"}->field;
$xml->attributes('field');
$xml->attributes()['field'];
$xml->attributes->['field'];