PHP SimpleXML повторяет данные - PullRequest
1 голос
/ 07 июля 2011

Использование 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);
}

Кто-нибудь может помочь?Здесь, где я до сих пор, unset не работает :( <shop> is $xml

1 Ответ

0 голосов
/ 07 июля 2011

Вы должны использовать переменную $ section для подсчета ее продуктов.

Так что foreach ($ xml-> section-> products как $ products) {-> foreach ($ section-> products как $ products) {

...