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 循环至少运行一次(即使没有项目)。此外,您正在增加$i变量,然后检查title带有$i索引的项目的标题是否null- 如果不检查该项目是否真的存在,您不应该这样做。这应该对你更好:

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

您还可以在此处注意到我正在做(string)$item->title的 - 这会将标题节点转换为字符串,在其他情况下您将存储节点对象。

于 2012-12-12T08:47:00.523 回答