XML解析中的保留字?

时间:2012-07-16 22:41:03

标签: php xml parsing xml-parsing

我有以下内容:

<?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;“链接”字在这里可能是一个“保留”字,因为它在我的编辑器上是紫色的,如下图所示:

img

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

不确定为什么你的IDE突出显示紫色,但问题出在此处:

$newsStory = $ConvertToXml->channel;

需要更改为:

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

RSS Feed中的每个条目都在&lt; item&gt;中。标记,因此您需要循环显示实际Feed条目。

答案 1 :(得分:0)

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

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