2012-07-16 117 views
0

我有以下幾點:XML解析中的保留字?

<?php 

#Load in File 
$xmlUrl ="http://sports.espn.go.com/espn/rss/mlb/news"; 
$ConvertToXml = simplexml_load_file($xmlUrl); 

# -> Setup XML 
$newsStory = $ConvertToXml->channel; 

# -----> Load News Stories 
for($i = 0;$i<sizeof($newsStory); $i++){ 

    // Source of Article Info--> 
    $SrcTitle=$newsStory[$i]->title; 
    $SrcLink=$newsStory[$i]->link; 

    // Actual News Article Info --> 
    $title=$newsStory[$i]->item->title; 
    $desc=$newsStory[$i]->item->description; 


    echo '<hr>'; 
    echo '<strong>'.'Title:'.$title.'</strong>'.'(via: <a href=\''.$SrcLink.'\'>'.$SrcTitle.'</a>'.'<br />'; 
    //echo 'Link:'.$link.'<br />'; 
    echo 'Description'.$desc.'<br>'; 
    echo '<hr>'; 
} 

它輸出僅1分的結果時,它應該輸出約10結果...

這行:$SrcLink=$newsStory[$i]->link;出現「鏈接」字可能是「保留」因爲它對我的編輯紫這裏如下圖所示的圖像中字:

img

我在做什麼錯在這裏?

+0

這不是保留,你的編輯器只是認爲你在調用['link()'](http://php.net/link)。 – nickb 2012-07-16 22:42:49

回答

1

不知道爲什麼你的IDE是突出的是紫色的,但現在的問題是:

$newsStory = $ConvertToXml->channel; 

需要被改爲:

$newsStory = $ConvertToXml->channel->item; 

RSS feed中的每一項都是在<item>標籤,因此您需要循環查看實際供稿條目的內容。

+0

偉大的幫助!欣賞它畫了! – CodeTalk 2012-07-17 00:01:32

+0

不客氣。意味着更早地添加它,但是,「頻道」數據是饋送特定信息。所以你打印的'title'和'link'就是feed標題和feed URL。除此之外,每個「item」都是Feed中的條目。這就是爲什麼你看到之前打印出來的東西。 – drew010 2012-07-17 00:04:38

0

顏色編碼經常會遇到這個問題。由於該單詞被用作屬性名稱(如->所示),因此它可以是字面意義上的任何內容 - 在這種情況下沒有保留字。

我建議var_dump(count($newsStory))所以你可以看到究竟有多少元素循環。如果它是1,那麼你的$newsStory變量可能有問題 - 你也可以var_dump