Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66

    [php] recupero dati da file XML

    Ciao a tutti,
    scrivo per il seguente motivo.
    Ho necessit di leggere dei dati da un file XML raggiungibile in http.
    Utilizzando un file xml standard nella forma
    codice:
    <indexnode>
     <node>
      <childnode>
      </childnode>
     </node>
     <node>
      <childnode>
      </childnode>
     </node>
    </indexnode>
    non ho problemi nel recupero dati utilizzando la forma:
    codice:
    $file_xml = $xml = simplexml_load_file('file.xml');
    foreach($xml->node as $Nodi)
    {
       echo $Nodi->childnode;
    }
    Se invece devo ricavare i dati da un file fatto in questo modo:

    codice:
    <?xml version="1.0" encoding="utf-16" ?> 
    <AnagraficaArticoli> 
    <WebSite_ArticoliConListino Padre="0/210" Codice="0/210#RO-N" Desrizione="ccc" DescrizioneVariante="ccc" Listino="120" Prezzo="375.00" IsObsolete="0" IsDisponibile="0" DataConsegna="N.D." CatMerceologica="20" /> 
    <WebSite_ArticoliConListino Padre="0/211" Codice="0/211#RO-N" Desrizione="hhh" DescrizioneVariante="hhh" Listino="120" Prezzo="385.00" IsObsolete="0" IsDisponibile="0" DataConsegna="N.D." CatMerceologica="20" />
    </AnagraficaArticoli>
    ho delle difficolt. forse dipende dal fatto che i dati non hanno un tag di apertura e chiusura ma sono riposti all'interno di esso...

    Suggerimenti???

  2. #2
    quelli non sono tag ma attributi...

    ti consiglio di dare un occhio a questo articolo
    Se nella prima mezz'ora non capisci chi il pollo, allora il pollo sei tu. [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  3. #3
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    ok, quello lo avevo gi visto ed era li che avevo usato il simpleXml.

    Solo che con questo file, di cui metto una riga esemplificativa

    codice:
    <?xml version="1.0" encoding="utf-16" ?> 
    <AnagraficaArticoli> 
    <AzetaWebSite_ArticoliConListino Padre="0/02" Modello="CAFE" Codice="0/02#AL-1-S" Desrizione="Vassoio" DescrizioneVariante="vassoio Alluminio Ciliegio Satinato" Listino="120" Prezzo="66.00" IsObsolete="0" IsDisponibile="0" DataConsegna="N.D." CatMerceologica="10" />
    </AnagraficaArticoli>
    utilizzando il codice

    codice:
    $xml = simplexml_load_file('articoli_prova.xml'); 
    echo "<h3>Articoli presenti nel file XML: (".count($xml->AnagraficaArticoli).")</h3>"; foreach($xml->AnagraficaArticoli as $articolo) {
     echo $articolo;
     }
    mi da sempre lo stesso errore

    codice:
    Warning: simplexml_load_file() [function.simplexml-load-file]: articoli_prova.xml:70: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE0 0x20 0x63 0x6D i
    non credo che l'errore sia dovuto all'utilizzo o no dell'Xpath.

    Idee?? Grazie...

  4. #4
    Guarda che l'errore dice che non risconosce la codifica...

    codice:
    parser error : Input is not proper UTF-8

  5. #5
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    infatti il file viene mandato in utf-16, ma come posso interagire con esso???
    o meglio devo chiedere di codificare il file in utf 8 da chi me lo manda o c' un modo per ovviare al problema da php???
    quello che sto cercando di capire...

  6. #6
    scusate ma vorrei sottoporre anche il problema che incontro io che simile a questo e nonostante sono giorni che faccio prove non riesco a levarcempioi le gambe...

    allora leggo un file xml e lo scrivo su un csv

    e fin qui tutto bene tranne che per alcuni caratteri che proprio non c' verso di scriverli...
    tipo le virgolette...
    esempio:

    leggo:
    BOX PER HDD PATA / USB 3.5" COLORE NERO

    e con questo codice (da cui si capisce che le ho provate di tutte...)
    ...
    $testo = utf8_encode($testo);
    //$testo = html_entity_decode($testo, ENT_QUOTES ); //02-06-2010 21999
    $cerca = array("€","”","├┬┬","”","–","°", "",'"',';',""," ");
    $sostituisci = array("" ,"" ,"" ,"" ,"-" ,"" ,"" ,"",",","" ," " );
    $testo = str_replace($cerca, $sostituisci, $testo);
    ...
    mi scrive nel csv
    ...
    BOX PER HDD PATA / USB 3.5” COLORE NERO
    ...

    evidente che io non essendo esperto in php mi sto perdendo in un bicchier d'acqua ma da me nonostante miliardi di tentativi... niente ... (e ho cercato da per tutto su google...)
    grazie in anticipo

  7. #7
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    Originariamente inviato da Mass1
    scusate ma vorrei sottoporre anche il problema che incontro io che simile a questo e nonostante sono giorni che faccio prove non riesco a levarcempioi le gambe...

    allora leggo un file xml e lo scrivo su un csv

    e fin qui tutto bene tranne che per alcuni caratteri che proprio non c' verso di scriverli...
    tipo le virgolette...
    esempio:

    leggo:
    BOX PER HDD PATA / USB 3.5" COLORE NERO

    e con questo codice (da cui si capisce che le ho provate di tutte...)
    ...
    $testo = utf8_encode($testo);
    //$testo = html_entity_decode($testo, ENT_QUOTES ); //02-06-2010 21999
    $cerca = array("€","”","├┬┬","”","–","°", "",'"',';',""," ");
    $sostituisci = array("" ,"" ,"" ,"" ,"-" ,"" ,"" ,"",",","" ," " );
    $testo = str_replace($cerca, $sostituisci, $testo);
    ...
    mi scrive nel csv
    ...
    BOX PER HDD PATA / USB 3.5” COLORE NERO
    ...

    evidente che io non essendo esperto in php mi sto perdendo in un bicchier d'acqua ma da me nonostante miliardi di tentativi... niente ... (e ho cercato da per tutto su google...)
    grazie in anticipo
    Io ho risolto il problema (CHE MI RIGUARDAVA).

    Per quanto riguarda il tuo, controlla l'effettiva equivalenza tra l'utf del file XML e quella nello script. In secondo luogo quando scrivi i dati nel file assicurati di far partire la stringa di codice con l'apice singolo.

    codice:
    $file_testo .= 'BOX PER HDD PATA/USB 3.5" COLORE NERO';
    E' un problema di conversione e visualizzazione dati. Non ti serve il vettore $cerca.

  8. #8
    E' un problema di conversione e visualizzazione dati. Non ti serve il vettore $cerca.
    infatti proprio non funziona non trova e non sostituisce...

    per questo come si fa?
    Per quanto riguarda il tuo, controlla l'effettiva equivalenza tra l'utf del file XML e quella nello script.

    questa una bella dritta provo subito e ti dico
    In secondo luogo quando scrivi i dati nel file assicurati di far partire la stringa di codice con l'apice singolo.

  9. #9
    Utente di HTML.it L'avatar di Van83
    Registrato dal
    Jan 2010
    Messaggi
    66
    per questo come si fa?
    Quando apri il file xml quadra la sua intestazione (prima riga di codice),
    Esempio:
    codice:
    <?xml version="1.0" encoding="utf-16" ?>
    e magari come prima riga del file php fai un echo
    codice:
    <?php echo '<?xml version="1.0" encoding="utf-16" ?>'; ?>
    controllando che gli utf siano uguali, in pratica devi adattare quello della TUA pagina php a quello inserito nella pagina XML

  10. #10
    Quando apri il file xml quadra la sua intestazione (prima riga di codice), Esempio: codice: <?xml version="1.0" encoding="utf-16" ?> e magari come prima riga del file php fai un echo codice: <?php echo '<?xml version="1.0" encoding="utf-16" ?>'; ?>
    ah ecco perch non capivo il fatto che
    - il mio xml da cui leggo non riporta l'utf
    <?xml version="1.0" standalone="yes"?>

    - e la paginetta php che mi serve per fare questo lavoro l'ho scritta di sana pianta e non ho messo l'intestazione riportante l'utf da utilizzare
    dovrei metterla quindi?
    cos come quella di questa pagina portebbe andar bene?
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head><title>Invia una risposta | HTML.it forum</title>
    <meta http-equiv="MSThemeCompatible" content="Yes" />
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

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.