2013-12-14 80 views
1

我想訪問XML文件

var_dump($xml); 

顯示

class SimpleXMLElement#3013 (10) { 
    public [email protected] => 
    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 

然而 我不知道如何訪問「級別的人的訪問名'in $ @ attributes

$xml->attributes->rank 

不起作用。

我認爲這是因爲$ @屬性和$名稱是不同的。

我不知道什麼$ @指...

+0

'的var_dump( )'有abili ty來打印整個對象,包括你不應該混淆的私有和隱藏的東西,我猜'@ attributes'只能被類使用,而不應該被PHP腳本訪問。 – Havenard

回答

1

的SimpleXML被設計成好像它們是對象屬性的一個訪問XML節點。 @字符不是valid XML node name,因此,@被用作「attributes」屬性(保存節點屬性的屬性)的前綴。這確保了該屬性永遠不會與名爲「attributes」的子節點發生衝突。

要訪問屬性,嘗試下面的方法之一:

  1. 通過array index

    $xml['rank'] 
    
  2. 經由SimpleXMLElement::attributes()方法:

    $xml->attributes()->rank 
    
+0

2適合我。謝謝! – whitebear