2017-07-14 3 views
-1

私はsimplexml_load_file関数を使用して作成された$rssObjectのRSSオブジェクトを持っています。目的は[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 
           ) 

         ) 

私はnull

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

ないのはなぜ確認を返し、この表記法を使用して[href]の内容を取得しようとして失敗したのか? ご協力いただければ幸いです! SimpleXMLで

+0

なぜこれがダウン投票されましたか? var_dumpが誤った出力を出力しているときに、この質問を正当化しました。 – Mohammad

+1

ええ、これは非常に一般的な混乱であり、我々は実際にそれを説明する標準的な答えを持っているべきです。 – IMSoP

答えて

2

、属性は、配列表記を使用してアクセスされる:PHPマニュアルに

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

見る "Example #5 Using attributesを"。

+0

こんにちは、[@属性]をキーとして使用する必要がない理由を説明できますか? – Mohammad

+1

あなたが見る 'var_dump'表現は..嘘です。 SimpleXMLはいくつかの魔法を実行し、あなたはそのルールに従わなければなりません。 – cweiske

+0

興味深いことに、ありがとうございました。 – Mohammad

関連する問題