Я пытаюсь разобрать XML-ответ с DOM.PHP: Перегруппировать атрибуты XML
<GetBilletResult>
<sNomProduit>product 2</sNomProduit>
<sNomArticle>article 4</sNomArticle>
...
<tabGrilleHoraire>
<tabDetailTarifArticle>
<tabDetail>
<sDetail>Liste Pax : Pax n°1 [Âge:19]</sDetail>
<sAgePax>19;</sAgePax>
...
</tabDetail>
</tabDetailTarifArticle>
...
<tabGrilleHoraire>
</GetBilletResult>
Мне нужно изменить порядок результатов и перегруппировать статьи по продуктам. Вывод должен выглядеть следующим образом:
sNomProduit: продукт 2
sNomArticle: статья 1
tabGrilleHoraire
- tabDetailTarifArticle
- tabDetail
- sПодробнее: Liste Pax: Pax n ° 1 [Âge: 19]
- sAgePax: 19;
- tabDetail
- tabDetailTarifArticle
Рабочий код (спасибо ConstantineUA):
$processed = array();
foreach($billets as $GetBilletResult)
{
$sNomProduit = $GetBilletResult->getElementsByTagName("sNomProduit")->item(0)->nodeValue;
$nIDProduit = $GetBilletResult->getElementsByTagName("nIDProduit")->item(0)->nodeValue;
$sNomArticle = $GetBilletResult->getElementsByTagName("sNomArticle")->item(0)->nodeValue;
$nIDArticle = $GetBilletResult->getElementsByTagName("nIDArticle")->item(0)->nodeValue;
$tabDetail = $GetBilletResult->getElementsByTagName("tabDetail");
if (!isset($processed[$sNomProduit])) {
$processed[$sNomProduit] = array();
}
$processed[$sNomProduit][] = array(
'nIDProduit' => $nIDProduit,
'sNomArticle' => $sNomArticle,
'nIDArticle' => $nIDArticle,
'tabDetail' => $tabDetail,
);
}
Loop:
foreach ($processed as $sNomProduit => $list) {
echo "<h3> ".$sNomProduit."</h3>";
foreach ($list as $item) {
echo "<h5> ".$item['sNomArticle'] . "</h5>";
foreach ($item['tabDetail'] as $node) {
var_dump ($node->nodeValue);
}
}
echo "<hr>";
}
Что вы пробовали? –
Вопрос обновлен. – Senneville