0

我的问题与此类似

如何访问具有美元符号的 PHP 对象属性?

但我有一个@ (at) 符号而不是一美元。

对象是这样的:

object(SimpleXMLElement)#8 (1) { 
  ["@attributes"]=> array(3) { 
  ["type"]=> string(9) "image/png" 
  ["href"]=> string(62) "http://someurl.com/images/193/image_normal.jpg" 
  ["rel"]=> string(5) "image" 
  } 
}

我必须访问 @attributes 变量(真的是 href 组件),但是 PHP 不允许这样的语法:

$object->@attributes

在引用的资源之后,我尝试了这种方式:

$object->{'@attributes'};

或者

$myvar = '@attributes';
$object->$myvar;

但是这两种形式都不会导致访问变量。它打印:

object(SimpleXMLElement)#8 (0) {}

虽然我希望有一个向量。

任何的想法?谢谢

4

2 回答 2

2

在正常情况下$object->{'@attributeName'}- 问你的问题。

但是,您想使用 SimpleXMLElement 获取xml 元素的属性- 这样做是这样的:

$attributeValue = (string) $xmlElement['attributeName'];

更多用法:

http://www.php.net/manual/en/simplexml.examples-basic.php

于 2013-04-02T17:36:43.633 回答
0

有关更多信息,请attributes参见SimpleXMLElement::attributes

例子

foreach($xml->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
于 2013-04-02T17:34:38.260 回答