Visualizzazione dei risultati da 1 a 8 su 8

Discussione: PHP e XML

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    24

    PHP e XML

    Ciao tutti,

    qualcuno saprebbe dirmi come accedere ai dati di un xml dopo aver usato la funzione simplexml_load_file?

    Mi restituisce un oggetto, ma non riesco a prelevare i valori come se fosse un array.
    Il mio obiettivo è quello di prelevare i singoli campi e metterli nel db.

    Grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    ci accedi come se il tag xml fosse l'attributo dell'oggetto.
    es: se hai un tag xml <libro>...</libro>
    fai così $oggetto->libro

    Guardati la documentazione di simplexml sul manuale ufficiale di PHP, ci sono tutti gli esempi di cui puoi avere bisogno
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    24
    Ho provato a guardare su php.net ma nn ho trovato quello che cercavo...probabile che ci sia passato e non me ne sia accorto.

    Ad ogni modo:

    facendo $oggetto -> libro

    nn mi riporta nessun risultato nonostante il file contenga il valore.

    Essendo chevi sono più dati all'interno dell'xml, può influire in qualche maniera?

    Grzie mille

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    intanto inizia con il stamparti l'intero contenuto

    Codice PHP:
    print var_dump($oggettoxml
    oppure

    Codice PHP:
    print var_dump($oggettoxml->libro
    Per verificare che i dati ci siano.

    Se i tag sono innestati ti servirà un foreach

    Codice PHP:
    foreach ($oggettoxml->libro as $libro)
    {
       foreach (
    $libro->capitolo as $capitolo)
       {
          print 
    $capitolo;
       }

    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    24
    Ciao la stampa è andata a buon fine anche se io avevo utilizzato inizialmente il print_r($oggetto) per visualizzare il contenuto.

    Quindi dovrei fare un ciclo for per ogni figlio?

    Il mio xml è struttura tipo così:

    Codice PHP:
    -<Inizio xmlns:xsi="....."
       -<
    Notifica
         -<
    Testata
             <
    libro>  
            <
    capitolo
             <
    pagina>   
          </
    Testata>  
           -<
    info libro
               <
    autore>  
              <
    casa editrice
             -<
    trama>    
             <
    personaggio>  
               <
    trama libro>  
              </
    trama>      
         </
    info libro>  
         </
    Notifica
    e poi ricomincia da Notifica per almeno 18 volte e si chiude tutto con </Inizio>

    Il problema è che per i primi 2 -<inizio></inizio> la struttura è uguale.
    Mentre dal terzo in poi nn esiste la parte della -<trama></trama>.

    Come dovrei impostare i cicli foreach?
    Così nn mi funziona:


    Codice PHP:
    foreach ($xml->Inizio as $inizio) {     
         foreach (
    $inizio->Notifica as $notifica)     {   
              foreach (
    $notifica->Testata as $testata)    {            
                  foreach (
    $testata->libro as $libro)            {           
                        echo 
    $libro;            
                   }    
                }   
             } 
     } 
    Grazie per l'aiuto

  6. #6
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    devi controllare se il nodo ha figli, se ha figli fai un ulteriore foreach, se no no. C'è un metodo apposito per fare questo che però non ricordo. Però devi guardarti la documentazione, c'è un metodo apposito per fare ogni cosa di cui hai bisogno, io ricordo che in 5 minuti li ho trovati tutti e messi in pratica molto velocemente
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    24
    capito...purtroppo è 3 giorni che spulcio in giro...spesso trovo alcune cose che però nn mi funzionano e nn riesco a trovare un esempio che mi calzi a pennello, perchè ovviamente quasi tutti gli esempi hanno xml con un nodo principale e poche informazioni da caricare in ordine.
    Nel mio caso invece ho un xml con grandi quantità di dati...e spesso informazioni nn in ordine.

    Non sono neanche esperto di XML è la prima volta che lo tratto purtroppo e ci sto davvero sbattendo la testa

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    24
    Guarda credo di aver risolto forse...sono riuscito a visualizzare l'intero contenuto...ora proverò a estrapolare i singoli dati...ti ringrazio molto. Sei stato gentilissimo.

    Grazie per la pazienza

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.