Я работаю с списком продуктов XML, который отображает список из примерно 20 продуктов, и в каждом <item>
есть <description>
, а затем один <bullet>
для каждого. Вот пример:Разбор нескольких вложенных элементов как неупорядоченный список с помощью SimpleXML с использованием PHP foreach
Я использую foreach
петлю с SimpleXML тянуть в данном продукте, и все отдельные теги, такие как <image>
и <title>
работает отлично.
Моя проблема заключается в том, что он обрабатывает только первый <bullet>
для каждого продукта, а не все из них. Чтобы исправить это, я попытался добавить цикл for
, который нацелен на все вложенные элементы в теге <description>
и выводит, как многие из них есть. Но теперь он дает мне первый <bullet>
первого элемента XML-файла и помещает его под каждый продукт, вместо того, чтобы показывать несколько патронов для каждого соответствующего продукта, чего я хочу.
Я отправлю свой сценарий и, надеюсь, кто-то сможет указать, где я ошибаюсь.
<?php
$items = simplexml_load_file('http://www.itclear.com/BestSellers.xml');
foreach ($items->channel->item as $item):
$title=$item->title;
$image=$item->image;
$price=$item->price;
$description=$item->description;
$link=$item->link;
echo '
<div class="xsmall-12 medium-6 large-4 columns product">
<div class="inner">
<div class="product-image">
<img class="product-image" src="',$image,'"/>
</div>
<h2 class="product-title"><strong>',$title,'</strong></h2>
<ul>';
$bullets = $items->channel->item->description;
for($i=0;$i<=$bullets;$i++){
echo '<li>',$bullets[$i]->bullet,'</li>';
}
echo'
</ul><span class="product-price">£',$price,'</span>
<a class="product-link" href="',$link,'" target="_blank" title="Visit ITC Sales to buy ',$title,'">View Deal <i class="fa fa-angle-right" aria-hidden="true"></i></a>
</div>
</div>';
endforeach;
>
Для тех, кто читает это, это отлично работает для меня, я уверен, что я пробовал это, но я должен был сделать это по-другому. Спасибо IMSoP – Danny