ho un problema per l'estrazione di dati da un file xml con parecchi articoli, il file xml è composto così:
<prodotti>
<prodotto>
<id>1</id>
<Categoria>Test</Categoria>
<SottoCategoria>prova</SottoCategoria>
<Nome>ome articolo</Nome>
<Description>descrizione breve</Description>
<Immagine>link immaine</Immagine>
<CODICE>codice</CODICE>
<Azienda>azienda</Azienda>
<Descrizione>descrizione estesa</Descrizione>
<Prezzo>prezzo</Prezzo>
<Sconto>sconto</Sconto>
<IVA>iva</IVA>
<TempiDiConsegna>tempi consegna</TempiDiConsegna>
<url>url articolo</url>
<Peso>peso</Peso>
<Visibile>si</Visibile>
<ImmaginiSecondarie>
<Immagine>
<Url>url immagine secondaria 1</Url>
</Immagine>
<Immagine>
<Url>url immagine secondaria 2</Url>
</Immagine>
<Immagine>
<Url>url immagine secondaria 3</Url>
</Immagine>
</ImmaginiSecondarie>
<Documenti>
<Documento>
<Url>url documento</Url>
<Nome>scheda tecnica</Nome>
</Documento>
</Documenti>
<correlati>
<prodotto>
<id_prodotto>id correlato 1</id_prodotto>
</prodotto>
<prodotto>
<id_prodotto>id correlato 2</id_prodotto>
</prodotto>
<prodotto>
<id_prodotto>id correlato 3</id_prodotto>
</prodotto>
<prodotto>
<id_prodotto>id correlato 4</id_prodotto>
</prodotto>
</correlati>
</prodotto>
</prodotti>
uso il seguente codice php:
<?php
$xml = simplexml_load_file('test.xml');
echo "<h3>Articoli presenti (".count($xml->prodotto).")</h3>";
echo "<ul>";
foreach($xml->prodotto as $article)
{
$id_base=$article->id;
echo '<li>'.$article->id.'</li>';
echo '<li>'.$article->Nome.'</li>';
echo '<li>'.$article->Categoria.'</li>';
echo '<li>'.$article->SottoCategoria.'</li>';
echo '<li>'.$article->Nome.'</li>';
echo '<li>'.$article->Description.'</li>';
echo '<li>'.$article->Immagine.'</li>';
echo '<li>'.$article->CODICE.'</li>';
echo '<li>'.$article->Azienda.'</li>';
echo '<li>'.$article->Descrizione.'</li>';
echo '<li>'.$article->Prezzo.'</li>';
echo '<li>'.$article->Sconto.'</li>';
echo '<li>'.$article->IVA.'</li>';
echo '<li>'.$article->TempiDiConsegna.'</li>';
echo '<li>'.$article->in_Vetrina.'</li>';
echo '<li>'.$article->Ranking.'</li>';
echo '<li>'.$article->url.'</li>';
echo '<li>'.$article->Peso.'</li>';
echo '<li>'.$article->Visibile.'</li>';
echo '<li>----------- IMMAGINI SECONDARIE -----------------</li>';
echo '<li>'.$article->ImmaginiSecondarie->Immagine->Url.'</li>';
echo '<li>--------------------------------------------------</li>';
echo '<li>'.$article->Documenti->Documento->Url.'</li>';
echo '<li>'.$article->Documenti->Documento->Nome.'</li>';
echo '<li>---------------- PRODOTTI CORRELATI -------------------</li>';
echo '<li>'.$correlati->id_prodotto.'</li>';
echo '<li>-------------------------------------------------------</li>';
echo '<li>####################################</li>';
}
echo "</ul>";
?>
il problema mi sorge sulle immagini secondarie e sui prodotti correlati che non vengono tutti estratti e a video vedo solo il primo
ho provato ad inserire ad esempio:
foreach($xml->prodotto->correlati->prodotto as $correlati)
{
echo '<li>'.$correlati->id_prodotto.'</li>';
}
ma per tutti gli articoli mi fa sempre vedere quelli del primo articolo
grazie dell'aiuto