foreach解析xml但只显示一条记录

时间:2011-08-18 09:37:08

标签: php xml simplexml

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>

2 个答案:

答案 0 :(得分:0)

您的代码和问题表明$ xml包含至少两个标记“结果”的标记。

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

所以,如果您的xml看起来像

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

代码应该是

foreach($xml1->listing as $info)

答案 1 :(得分:0)

这对我有用:

$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>";

}