Я хочу сгруппировать их по агенту
XML, структурированный следующим образом
<library>
<document>
<ProductName>somename1</ProductName>
<productAgent>Agent-01</productAgent>
<productType>Goods</productType>
</document>
<ProductName>somename3</ProductName>
<productAgent>Agent-02</productAgent>
<productType>Services</productType>
</document>
......
</library>
Ожидаемый результат
<ul>
<li>Agent-01(productAgent)
<ul>
<li>somename1 - Goods</li>
</ul>
</li>
<li>Agent-02(productAgent)
<ul>
<li>somename3 - Services</li>
<li>somename6 - Goods</li>
</ul>
</li>
</ul>
То, что я пытался
<ul>
<li>Agent-01(productAgent)
<ul>
<?php foreach($xml->document as $item){
if ($item->productAgent == 'Agent-01' ) {
echo '<li>'.$item->ProductName.'-'.$item->ProductType.'</li>';
}
}
?>
</ul>
</li>
<li>Agent-02(productAgent)
<ul>
<?php foreach($xml->document as $item){
if ($item->productAgent == 'Agent-02' ) {
echo '<li>'.$item->ProductName.'-'.$item->ProductType.'</li>';
}
}
?>
</ul>
</li>
</ul>
Проблема
Мне приходится изменять свой код каждый раз, когда имя агента меняется. Мой код не кажется хорошим решением, когда число агентов увеличивается.