Foreach用于解析XML,但只显示一条记录


foreach on parsing xml but shows only one record

foreach($xml1->results as $info) {
                    $title = $info->listing->title;
                    $favicon = $info->listing->favicon;

                    echo $favicon;
                    echo "<a href=".$redirect;
                    echo ">".$title."</a><BR>";
                }

输出一切正常,但只显示一条记录。有什么问题吗?

XML结构
<listing>
   <title></title>
   <url></url>
   <description>[result-description]</description>
</listing>

您的代码和问题表明$xml包含至少两个标记"results"。

simplexml忽略根标记作为对象的一部分,它只包含属性。

所以,如果XML看起来像

<results>
    <listing>
        <title></title>
        <favicon></favicon>
    </listing>
    <listing>
        <title></title>
        <favicon></favicon>
    </listing>
</results>

代码应该是

foreach($xml1->listing as $info)

这个适合我:

$xml="<?xml version='"1.0'" encoding='"UTF-8'"?>
<results>
    <listing>
        <title>title 1</title>
        <favicon>fav1</favicon>
    </listing>
    <listing>
        <title>title 2</title>
        <favicon>fav2</favicon>
    </listing>
</results>
";

$xmlObj=simplexml_load_string($xml);
foreach($xmlObj as $info){
    $title = $info->title;
    $favicon = $info->favicon;

    echo $favicon;
    echo "<a href=''";
    echo ">".$title."</a><BR>";
}