2012-07-16 119 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