Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    63

    estrazione dati xml nidificati

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    63
    mi rispondo da solo in maniera tale che possa essere di aiuto ad altri con questo problema

    bisogna fare

    foreach($article->correlati->prodotto as $correlati)
    {

    echo '<li>'.$correlati->id_prodotto.'</li>';

    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.