simplexml'试图获取非对象的属性'错误

时间:2013-08-14 17:29:37

标签: php xml simplexml

我正在尝试解析http://www.mpgh.net/forum/external.php?type=RSS2&forumids=175的XML 但我得到这个错误,找不到什么错误。

  

注意:尝试在第9行的C:\ xampp \ htdocs \ crossfire \ index.php中获取非对象的属性

<?php  
$rss = simplexml_load_file('http://www.mpgh.net/forum/external.php?type=RSS2&forumids=175'); 

for($i=0;$i<10;$i+=1) {
    $namespaces = $rss->getNameSpaces(true);
    $dc = $rss->children($namespaces['dc']);

    echo "Title: " . $rss->channel->item[$i]->title . "<br>";
    echo "Creator: " . $dc->channel->item[$i]->creator . "<br>";
    echo "Link: " . $rss->channel->item[$i]->link . "<br><br>";
}  

我的第二个问题。

为什么此代码仅在http://www.mpgh.net/forum/external.php?type=RSS2&forumids=175处正常运行,而不在http://www.mpgh.net/forum/external.php?type=RSS2&forumids=168

等其他网页正常运行
  

注意:尝试在第7行的C:\ xampp \ htdocs \ crossfire \ index.php中获取非对象的属性

<?php
$rss = New DOMDocument();
$rss = simplexml_load_file('http://www.mpgh.net/forum/external.php?type=RSS2&forumids=168'); 

for($i=0;$i<10;$i+=1) {

    if (substr($rss->channel->item[$i]->title, 0, 9) == '[Release]') {
        echo "Title: " . $rss->channel->item[$i]->title . "<br>";
        echo "Link: " . $rss->channel->item[$i]->link . "<br><br>";
    } else {
        echo 'Hoi<br><br>';
    }
}

感谢。

1 个答案:

答案 0 :(得分:1)

我认为问题是$i的{​​{1}}索引未设置或不是对象。

试试这个;它会揭露问题:

$rss->channel->item