PHP SimpleXML重复数据

时间:2011-07-07 11:50:09

标签: php xml foreach simplexml

使用SimpleXML从基本XML文件中提取数据。 XML看起来像:

<shop>
  <section>
    <title></title>
    <products>
      <item>
        ...
      </item>
    </products>
  </section>
</shop>

我可以加载和循环输出节点,但是当我用每个部分项填充HTML时,它会不断重复第一部分项。我很困惑,因为每个部分名称输出正确但使用第一组项目。

foreach($xml->section as $section){
$i=0;
echo '<div class="section"><div class="sectionTop"><h3>'.$section->title.'</h3><a class="expand">+/-</a></div>';         

foreach($xml->section->products as $products){
    foreach($products->item as $item){
        if($i==3){echo '</div><div class="extra">';}?>

        <div class="item">
        <img src="<?=$item->image?>" />
        <div class="prodName"><?=$item->name?></div>
            <div class="price">&pound;<?=$item->price?></div>
        <a href="<?=$item->url?>" class="shopNow">SHOP</a>
    </div>

        <? 
        $i++;
        unset($item);
    }
    unset($products);
}

有人可以帮忙吗?这是我到目前为止,未设置不起作用:( <shop>$xml

1 个答案:

答案 0 :(得分:0)

您应该使用$ section变量来计算产品。

所以 foreach($ xml-&gt; section-&gt; products as product products){ - &GT; foreach($ section-&gt; products as product products){