$ @对于xml解析意味着什么?

时间:2013-12-14 20:46:26

标签: php xml xml-parsing

我想访问XML文件

var_dump($xml);

显示

class SimpleXMLElement#3013 (10) {
  public $@attributes =>
   array(1) {
   'rank' =>
   string(1) "1"
   }
  public $name =>
   string(13) "name of the man"

我可以访问该男子的姓名

$feed = simplexml_load_file($url);
foreach ($feed as $xml){
  $xml->name;// access here

然而 我不知道如何在$ @ attributes中访问'rank'

$xml->attributes->rank

不起作用。

我认为这是因为$ @ attributes和$ name是不同的。

我不知道$ @的含义......

1 个答案:

答案 0 :(得分:1)

SimpleXML的设计使得人们可以像访问对象属性一样访问XML节点。 @字符不是valid XML node name,因此@被用作“attributes”属性(保存节点属性的属性)的前缀。这可确保该属性永远不会与名为“attributes”的子节点冲突。

要访问该属性,请尝试以下方法之一:

  1. array index

    $xml['rank']
    
  2. 通过SimpleXMLElement::attributes()方法:

    $xml->attributes()->rank