2013-08-14 2 views
0

XML을 구문 분석하려고하는데이 오류가 발생하여 잘못된 것을 찾을 수 없습니다.simplexml '객체가 아닌 객체의 속성을 가져 오려고 시도 중입니다.'오류

주의 사항 : C 비 개체의 속성을 얻으려고 노력 :

<?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>"; 
} 

라인 (9) 그리고 내 두 번째 질문에 \ XAMPP \ htdocs에 크로스 파이어 \의 index.php를 \입니다.

이유는 단지처럼 다른 페이지에서 제대로 http://www.mpgh.net/forum/external.php?type=RSS2&forumids=175에서가 아니라 작업이 코드 http://www.mpgh.net/forum/external.php?type=RSS2&forumids=168

공지 사항 : \ XAMPP \ htdocs에 크로스 파이어 \ 지수 \ C 비 개체의 속성을 얻으려고 노력.

<?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>'; 
    } 
} 

감사 7 호선에 PHP는.

+0

왜 루프가 0에서 9로 갈 것입니까? 'item [$ i]'를 사용할 수 없습니다! – Javid

+0

@Javid는 foreach가 더 나아? 그리고 어떻게 그랬지? – user2679779

+1

적어도 배열 경계에서 루프를 벗어나지 않도록합니다. – Javid

답변

1

$i 번째 색인 $rss->channel->item이 설정되지 않았거나 개체가 아닙니다.

시도해보십시오. 문제를 드러 낼 것입니다 :

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

if ($rss===null || !is_object($rss)) 
    die('Failed to load xml file.'); 
if (!is_object($rss->channel)) 
    die('Channel is not an object!'); 

foreach ($rss->channel->item as $item) 
    if (is_object($item)) { 
     $namespaces = $rss->getNameSpaces(true); 
     $dc = $rss->children($namespaces['dc']); 

     echo "Title: " . $item->title . "<br>"; 
     echo "Creator: " . $item->creator . "<br>"; 
     echo "Link: " . $item->link . "<br><br>"; 
    } 
관련 문제