1

この(初心者向けの)コードは私がやりたいことを実行しているにもかかわらず、何らかの理由で XML エラーが発生します。文字列を配列にフェッチします。

行 11 は、「通知: 行 11 の D:\pam\w\www\mp\p\lasxml.php で非オブジェクトのプロパティを取得しようとしています」という結果になります。

    <?php           
    $xml = new DOMDocument( "1.0", "ISO-8859-1" );                                                          
    $xml = simplexml_load_file('http://www.myepisodes.com/rss.php?feed=mylist&showignored=0&sort=asc&uid=Demerzel&pwdmd5=c6ed54b98a82b1----ac58147cedbde5'); 


    $allaFullStringfranxml = array();                                           
    $i = 0;                                                                 
        do{                                                                 
            $allaFullStringfranxml[] = $xml->channel->item[$i]->title;          
            ++$i;                                                               
        }while(($xml->channel->item[$i]->title) != null);                   
4

1 に答える 1

1

do-while ループを使用している理由がわかりません。この場合は foreach の方が良いと思います。do while ループは少なくとも 1 回実行されます (アイテムがない場合でも)。また、変数をインクリメントしてから、インデックス付きのアイテムの$iタイトルが存在するかどうかを確認しています。そのアイテムが実際に存在するかどうかを確認せずに、それを行うべきではありません。それはあなたにとってよりうまくいくはずです:title$inull

foreach ($xml->channel->item as $item) {
    $allaFullStringfranxml[] = (string)$item->title;
}

また、ここで私が行っていることに気付くでしょう(string)$item->title- これはタイトル ノードを文字列に変換します。それ以外の場合は、ノード オブジェクトを保存します。

于 2012-12-12T08:47:00.523 に答える