Leggere XML

pixart

Nuovo Utente
1 Mar 2011
7
0
0
Buon pomeriggio a tutti,
vi illustro il mio problema.

Ho un file XML che leggo attraverso Simplexml_load_file, riesco a navigare allinterno dell'Array e a stampare a video i campi che mi interessano.

Ora io vorrei far visualizzare a video solamente le companie aeree che si trovano all'interno dell' XML nella parte AirLineNameList->AirLineName, ma solamente una volta non volgio vederli tutti.

Sicuramente non sono stato chiaro.....
Vi allego il file XML che ho.
Grazie in anticipo

PHP:
<FlightSearch>
    <Offer>
      <Flight>
         <AirLineNameList>
             <AirLineName>Alitalia</AirLineName>
         </AirLineNameList>
       </Flight>
    </Offer>
    <Offer>
      <Flight>
         <AirLineNameList>
             <AirLineName>Alitalia</AirLineName>
         </AirLineNameList>
       </Flight>
    </Offer>
    <Offer>
      <Flight>
         <AirLineNameList>
             <AirLineName>Alitalia</AirLineName>
         </AirLineNameList>
       </Flight>
    </Offer>
    <Offer>
      <Flight>
         <AirLineNameList>
             <AirLineName>easyJet</AirLineName>
         </AirLineNameList>
       </Flight>
    </Offer>
<Offer>
      <Flight>
         <AirLineNameList>
             <AirLineName>Meridiana</AirLineName>
         </AirLineNameList>
       </Flight>
    </Offer>
<Offer>
      <Flight>
         <AirLineNameList>
             <AirLineName>Blue Panorama</AirLineName>
         </AirLineNameList>
       </Flight>
    </Offer>
</FlightSearch>

Con questo codice

PHP:
 <?php
$ListOffers = simplexml_load_file("voli_italia.xml");
foreach ($ListOffers->Offer as $volo)
    {
    echo "<br>" . $volo->Flight->AirLineNameList->AirLineName;
    }
?>

vedo tutta la lista anche i doppioni....

Alitalia
easyJet
easyJet
Blue Panorama
easyJet
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Per prima cosa, se non ce l'ha già metti la clausola <?xml version='1.0'?> all'inizio del file, se il file XML è well formed il parser del PHP lo legge meglio, poi... il problema:
Se trasformi tutto in un array, il tuo problem lo risolvi con $array = array_unique($array_orig) dove $array è un subset di $array_orig ma senza i duplicati.
Altro metodo più facile da risolvere: usare un database, se puoi usarne uno ti risolve di questi problemi, anche se poi te ne creerà altri :D
 

pixart

Nuovo Utente
1 Mar 2011
7
0
0
Ho provato ma non mi funziona...
mi da questo errore:
Warning: array_unique() expects parameter 1 to be array, object given in C:\xampp\htdocs\PHP-Test\index.php on line 31

L'array che intendo io è quello di simplexml_load_file... tu intendevi un array puro ?
Grazie.
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Ovviamente, un array è un array, simpleXML non torna array di valori.
Puoi fare così:
PHP:
foreach ($ListOffers->Offer as $volo)
    {
    $voli[] = $volo->Flight->AirLineNameList->AirLineName;
    }
E poi fare array_unique() su $voli e quindi ciclarlo, non è elegante ma funziona, l'alternativa elegante è usare le funzioni per leggere XML, ma francamente non me ne vengono in mente. è troppo tempo che non lo uso; sicuramente mi studierei xpath però.
 
Discussioni simili
Autore Titolo Forum Risposte Data
maxbossi Regolamento Regolamento forum XML - Leggere attentamente XML 0
neo996sps [risolto] Usare PHP per leggere da file XML PHP 3
M Leggere i dati di un fil xml e stampare i suoi dati tramite librerie gd PHP 1
A Ciclo ASP per leggere XML Classic ASP 7
Z Leggere feed rss xml con link di riferimento in .aspx PHP 4
G leggere file xml su server remoto Ajax 0
L leggere file xml dove i tag sono del tipo <stringa:altra_stringa> PHP 0
L leggere un file xml XML 1
I Leggere xml con dom in php PHP 3
LaKanka Leggere dati da file xml PHP 19
G Leggere item(XML) con javascript Javascript 1
G leggere xml Classic ASP 2
M Leggere in un report il valore di una casella combinata di una maschera Database 0
otto9due Leggere valore da array multidimensionale a chiavi dinamiche PHP 1
D PHP leggere cartella di Windows PHP 1
G leggere file txt e stampare con php il contenuto a video PHP 7
S Leggere dati da API e visualizzarli PHP 0
F Leggere e aggiornare dati di campi <input text> su file di test PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
maxbossi Attenzione alle TRUFFE: Leggere attentamente!!! Annunci servizi di Social Media Marketing 0
J Leggere JSON da Instagram __a=1 PHP 0
L leggere RGB di un pixel dello schermo in java Java 1
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
Q Leggere NFC da web app - web nfc Javascript 0
G Pec come leggere il contenuto Posta Elettronica 1
D [ASP] Leggere Campo decimal MYSQL Classic ASP 1
M leggere con jquery/ajax in una function javascript record di database sql server Javascript 0
P PHP - Leggere una pagina passata con Form e Captcha PHP 0
Drago73 [Java] leggere/scrivere txt server Java 0
C Leggere dati File.XMLcon PHP XML 11
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
M Leggere il contenuto di una cartella e memorizzare il nome file in mysql PHP 1
I [Javascript] Leggere "var" da file .js esterno (per google map) Javascript 6
W [PHP] Leggere un array un po complicato PHP 3
K Script PHP per leggere array.txt Presentati al Forum 3
H Interpretare e leggere il file log di sfc/scannow. Windows e Software 0
P leggere file .csv con javascript/jquery Javascript 11
V Leggere da db e metodi asincroni:vorrei capire jQuery 8
Monital Leggere un file php contenente dati json PHP 10
napuleone Leggere la scelta radio Javascript 0
Trapano Leggere un file .txt dal fondo PHP 7
Francesco Polese Leggere linea da un file ed eliminarla PHP 2
K leggere codice ean con fotocamera PHP 0
maxbossi Regolamento Regolamento della sezione - leggere ATTENTAMENTE prima di postare IP Cam e Videosorveglianza 0
P leggere dvd e memorizzazione dei dati letti PHP 1
L xmlrpc leggere le risposte. qualcuno mi aiuta? PHP 1
F Leggere file contenuti in cartella e modificarne il nome PHP 3
M Leggere dati da file excel in base al nome del foglio di lavoro PHP 0
felino [Ajax] Leggere in contenuto da un URL esterno Ajax 2
napuleone type="file" leggere con js Javascript 3

Discussioni simili