【问题标题】:foreach on parsing xml but shows only one recordforeach 解析 xml 但只显示一条记录
【发布时间】:2011-08-18 09:37:07
【问题描述】:
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>

【问题讨论】:

  • 尝试 foreach($xml1->results[0] as $info) {}
  • 它显示了多个没有标题的结果,favicon
  • 你能给出xml的结构吗?
  • 试试foreach($xml1-&gt;results-&gt;info as $info)。如果可行,则它是一个常见的重复项。

标签: php xml simplexml


【解决方案1】:

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

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

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

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

代码应该是

foreach($xml1->listing as $info)

【讨论】:

  • 您必须调用结果才能获取列表
  • 如果 results 是根源,我可能在这个问题上错了,但据我所知,你没有……试试 Roel Veldhuizen 的方法……
  • @catalin 确实尝试过,但没有出现结果。我必须调用 results->listing->xxx 才能显示标题和图标。仅 $xml1->listing 不会出现
【解决方案2】:

这对我有用:

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

}

【讨论】:

  • 对不起..它只是没有进来,不知道如何在没有进入结果的情况下调用列表
  • 只需将上面的内容复制并粘贴到一个 php 文件中,您就会看到它的工作原理:)
  • 正如您在php.net/manual/en/function.simplexml-load-string.php 的示例中看到的那样,根标签不会被访问,因为对象是根标签。相同的逻辑适用于列表标签,遍历列表标签将每个标签加载到 $info 变量中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 2016-07-11
  • 2018-06-02
相关资源
最近更新 更多