0

我有以下内容:

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

当它应该输出大约 10 个结果时,它只输出 1 个结果......

这一行:$SrcLink=$newsStory[$i]->link;“链接”字在这里似乎可能是一个“保留”字,因为它在我的编辑器上是紫色的,如下图所示:

图像

我在这里做错了什么?

4

2 回答 2

1

不知道为什么您的 IDE 会突出显示紫色,但问题是:

$newsStory = $ConvertToXml->channel;

需要改为:

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

RSS 提要中的每个条目都位于 <item> 标记中,因此您需要循环访问这些条目以获取实际提要条目。

于 2012-07-16T22:45:51.890 回答
0

颜色编码经常遇到这个问题。由于该词被用作属性名称(如 所示->),因此它实际上可以是任何东西 - 在这种情况下没有保留字。

我建议var_dump(count($newsStory))这样您就可以确切地看到有多少元素要循环。如果是1,那么你的变量可能有问题$newsStory- 你也可以var_dump

于 2012-07-16T22:44:22.647 回答