2017-07-14 49 views
-1

我使用PHP simplexml_load_file函數創建了一個RSS對象$rssObject,目標是獲得值爲[href]在PHP中訪問使用simplexml_load_file創建的多維數組對象返回null?

var_dump($rssObject)返回如下:

Array 
(
    [0] => SimpleXMLElement Object 
     (
      [link] => Array 
       (
        [0] => SimpleXMLElement Object 
         (
          [@attributes] => Array 
           (
            [href] => https://www.example.com 
           ) 

         ) 

我也沒能成功拿到[href]內容使用這個符號,其不返回null

$rssObject[0]->link[0]->{'@attributes'}['href']; 

知道爲什麼? 任何幫助,將不勝感激!

+0

這是爲什麼被低估?請參閱答案,當var_dump輸出一個誤導輸出時,它證明了這個問題! – Mohammad

+1

是的,這是一個非常普遍的混亂,我們應該真正有一個解釋它的規範答案。 – IMSoP

回答

2

SimpleXML中,屬性是使用訪問陣列符號:

$xml = simplexml_load_file(); 
$url = $xml[0]->link[0]['href']; 

見 「Example #5 Using attributes」 PHP手冊。

+0

你好,你能解釋爲什麼我不必使用[@attributes]作爲關鍵? – Mohammad

+1

你看到的'var_dump'表示是..一個謊言。 SimpleXML有一些魔力,你必須遵守它的規則。 – cweiske

+0

這很有趣,謝謝你的工作。 – Mohammad