Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Leggere da un file Xml con Php

    Non so se è esattamente questa la sezione dove metterlo...
    Ho un problema, una società di software ci passa dei dati tramite un foglio xml, per importarlo nel nostro sistema devo implementare una funzione php che legga il file, ma non ho trovato per ora nulla che funzioni, voi avete qualche idea?

    Uso PhP 5 e Mysql. (Oltre ad un server apache2)

    Il Tutto su windows, grazie in anticipo.

  2. #2
    http://it.php.net/manual/en/ref.dom.php

    se sei in abmbiente linux devi avere installato le libxml se sei in ambiente windows non far girare il php

  3. #3
    Purtroppo la macchina dei test è un pc winzozz con apache, php e mysql lol...
    ad ogni modo il problema del mio file è che i dati non sono all'interno dei tag

    Esempio:

    Codice PHP:
    <codice>attributo</codice
    ma sono messi tutti in questo modo

    Codice PHP:
    <codice id="attributo"></codice
    e dato che non mi possono cambiare il formato o la metodologia con cui esportano l'unica è usare il loro attuale file xml...

    tramite le voci DOMElement->getElementsByTagName() e DOMDocument->getElementsByTagName() dovrei farcela oO provo a fare qualcosa, al limite la posto poi grazie cmq dell'aiuto

  4. #4
    okay, okay, ci ho provato due giorni di fila -.- nulla da fare... espongo il mio problema:

    Il File che devo poter leggere è fatto veramente con i piedi... tutti i dati sono storati in questo modo (metto un esempio)

    codice:
    <prezzario prezzarioId="1" przId="UNI6" prdStruttura="zzzz.zzz.zzz.zzz" categoriaPrezzario="Listino" arrotondamento="0.01" arrotondamentoImporto="0.01" arrotondamentoPercentuale="0.01">
    per un pò e poi va a

    <prodotto prodottoId="63" prdId="AA01.A45" voce="true" titolo="true">
    <prdDescrizione breve="testo" />
    </prodotto>

    Io Ho provato in molti modi... ma non riesco a fare quello che vorrei oO

    Ho bisogno di aprire il file xml, prendere i campi e storarli in mysql, per poi poterli lavorare agevolmente o.o ... mi potete aiutare?

  5. #5
    Anche io ho lo stesso problema... la regione piemonte mi manda dei listini che presentano una struttura diversa da tutti gli esempi delle varie guide di xml...
    Come evidenziava Goikiu l'elemento da importare si trova all'interno del tag.

    Ho provato con java e con questi fantastici DOMElement ma firefox non ne vuole proprio sapere...

  6. #6
    Originariamente inviato da goikiu
    okay, okay, ci ho provato due giorni di fila -.- nulla da fare... espongo il mio problema:

    Il File che devo poter leggere è fatto veramente con i piedi... tutti i dati sono storati in questo modo (metto un esempio)

    codice:
    <prezzario prezzarioId="1" przId="UNI6" prdStruttura="zzzz.zzz.zzz.zzz" categoriaPrezzario="Listino" arrotondamento="0.01" arrotondamentoImporto="0.01" arrotondamentoPercentuale="0.01">
    per un pò e poi va a

    <prodotto prodottoId="63" prdId="AA01.A45" voce="true" titolo="true">
    <prdDescrizione breve="testo" />
    </prodotto>

    Io Ho provato in molti modi... ma non riesco a fare quello che vorrei oO

    Ho bisogno di aprire il file xml, prendere i campi e storarli in mysql, per poi poterli lavorare agevolmente o.o ... mi potete aiutare?
    Ad occhio e croce la cosa più conveniente che ti conviene fare è utilizzare DOM abbinato con xpath in questo modo.

    1. Scorri tutti i prezzari e ti prelevi tutti gli attributi, che se ho capito bene ogni attributo rappresenta un campo di una relativa tabella mysql.

    2. L' attributo prdStruttura rappresenta la tua foreignKey per raggiungere il sottoalbero XML che ti rappresenta il prodotto. Qui usi una query xpath più o meno così:
    Codice PHP:
    $dom = new DomDocument();
    $dom->load("prezario.xml");
    ....
    //supponiamo che nella variabile $prodId hai memorizzato il valore dell' attributo prdStruttura
    $xpath = new DomXPath($dom);
    $xpath->query("//prodotto[@prodId='".$prodId."']")->item(0);
    //il metodo item(0) ti ritorna il primo e (presumibilmente) unico elemento (DomNode anzichè DomNode List) che ha prodId = prdStruttura 
    in questo modo puoi navigare il sotto albero prodotto che cerchi e inserirlo in una tabella relazionata con il prezzario.

  7. #7
    Codice PHP:
    $dom = new DomDocument();
    $dom->load("Prezzario_UNI6.xml");
    $prodId "zzzz.zzz.zzz.zzz";
    $xpath = new DomXPath($dom);
    $xpath->query("//prodotto[@prodId='".$prodId."']")->item(0); 
    Sino a qui ci sono arrivato senza problemi, se provo a stampare direttamente la variabile $xpath mi dà errore in quanto non posso stampare in questo modo a video un oggetto XPath.

    Ho provato con DOMXPath->evaluate() ma non so che parametri passargli, tu dici che mi crea un albero di dati, come vi accedo? Sono un niubbo di Xml personalmente...

  8. #8
    Scusa c'è un errore nel codice.

    Codice PHP:
    $node $xpath->query("//prodotto[@prodId='".$prodId."']")->item(0); 
    Devi lavorare su $node.

    Sorry

  9. #9
    grazie mille, ora provo

  10. #10
    Originariamente inviato da Marcoski
    Scusa c'è un errore nel codice.

    Codice PHP:
    $node $xpath->query("//prodotto[@prodId='".$prodId."']")->item(0); 
    Devi lavorare su $node.

    Sorry
    mi stampa a video questo errore o.o ma temo sia il file o.o

    Notice: DOMDocument::load() [function.DOMDocument-load]: xmlns: URI six.xsd is not absolute in file:///C%3A/Programmi/Apache%20Software%20Foundation/Apache2.2/htdocs/!db/Prezzario_UNI6.xml, line: 2 in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\!db\test.php on line 3

    o.0 per il resto ho solo scritto questo:
    Codice PHP:
    print $node

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 © 2026 vBulletin Solutions, Inc. All rights reserved.