Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Esportare XML in PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24

    Esportare XML in PHP

    Salve ragazzi,
    avrei la necessità di esportare una serie di file xml, che richiamano un file dtd esterno, in mysql attraverso php.
    Fin quando si tratta di leggere file xml normali, nessun problema, ma in questo caso non riesco ad avere dei risultati accettabili (nel migliore dei casi leggo una sola riga del file).
    Ho provato, aiutandomi con diversi esempi in rete, utilizzando sia DOM che simplexml, ma purtroppo incontro sempre lo stesso problema. Anche nell'utilizzare una semplice funzione quale il conteggio dei record presenti (count) ottengo come risultato 0...

    Sicuramente l'approccio da fare in questi casi è diverso, ma quale?

    Potete aiutarmi?
    Grazie anticipatamente
    Ciao.
    Filippo

    P.S. come postare il file xml ed il relativo dtd?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24
    allego il dtd

    [CODE]
    <?xml version="1.0" encoding="UTF-8"?>
    <!ENTITY % text "(#PCDATA)">
    <!ELEMENT RiepilogoGiornaliero (Titolare, Organizzatore*)>
    <!ATTLIST RiepilogoGiornaliero Sostituzione (N | S) #REQUIRED Data CDATA #REQUIRED DataGenerazione CDATA #REQUIRED OraGenerazione CDATA #REQUIRED ProgressivoGenerazione CDATA #REQUIRED>
    <!ELEMENT Titolare (Denominazione, CodiceFiscale, SistemaEmissione)>
    <!ELEMENT Organizzatore (Denominazione, CodiceFiscale, TipoOrganizzatore, Evento*, Abbonamenti*)>
    <!ELEMENT Evento (Intrattenimento, Locale, DataEvento, OraEvento, MultiGenere+, OrdineDiPosto+)>
    <!ELEMENT Intrattenimento (TipoTassazione, Incidenza?)>
    <!ELEMENT Locale (Denominazione, CodiceLocale)>
    <!ELEMENT MultiGenere (TipoGenere, IncidenzaGenere, TitoliOpere+)>
    <!ELEMENT TitoliOpere (Titolo, ProduttoreCinema?, Autore?, Esecutore?, Nazionalita?, Distributore?)>
    <!ELEMENT OrdineDiPosto (CodiceOrdine, Capienza, TitoliAccesso*, TitoliAnnullati*, TitoliAccessoIVAPreassolta*, TitoliIVAPreassoltaAnnullati*, BigliettiAbbonamento*, BigliettiAbbonamentoAnnullati*)>
    <!ELEMENT TitoliAccesso (TipoTitolo, Quantita, CorrispettivoLordo, Prevendita, IVACorrispettivo, IVAPrevendita, ImportoPrestazione)>
    <!ELEMENT TitoliAnnullati (TipoTitolo, Quantita, CorrispettivoLordo, Prevendita, IVACorrispettivo, IVAPrevendita, ImportoPrestazione)>
    <!ELEMENT TitoliAccessoIVAPreassolta (TipoTitolo, Quantita, ImportoFigurativo, IVAFigurativa)>
    <!ELEMENT TitoliIVAPreassoltaAnnullati (TipoTitolo, Quantita, ImportoFigurativo, IVAFigurativa)>
    <!ELEMENT BigliettiAbbonamento (CodiceFiscale?, CodiceAbbonamento, TipoTitolo, Quantita, ImportoFigurativo, IVAFigurativa)>
    <!ELEMENT BigliettiAbbonamentoAnnullati (CodiceFiscale?, CodiceAbbonamento, TipoTitolo, Quantita, ImportoFigurativo, IVAFigurativa)>
    <!ELEMENT Abbonamenti (CodiceAbbonamento, Validita, TipoTassazione, Turno, CodiceOrdine, TipoTitolo, QuantitaEventiAbilitati, AbbonamentiEmessi?, AbbonamentiAnnullati?, AbbonamentiIVAPreassolta?, AbbonamentiIVAPreassoltaAnnullati?)>
    <!ELEMENT AbbonamentiEmessi (Quantita, CorrispettivoLordo, Prevendita, IVACorrispettivo, IVAPrevendita)>
    <!ELEMENT AbbonamentiAnnullati (Quantita, CorrispettivoLordo, Prevendita, IVACorrispettivo, IVAPrevendita)>
    <!ELEMENT AbbonamentiIVAPreassolta (Quantita, ImportoFigurativo, IVAFigurativa)>
    <!ELEMENT AbbonamentiIVAPreassoltaAnnullati (Quantita, ImportoFigurativo, IVAFigurativa)>

    <!ELEMENT Autore %text;>
    <!ELEMENT Capienza (#PCDATA)>
    <!ELEMENT CodiceAbbonamento %text;>
    <!ELEMENT CodiceFiscale %text;>
    <!ELEMENT CodiceLocale %text;>
    <!ELEMENT CodiceOrdine %text;>
    <!ELEMENT CorrispettivoLordo %text;>
    <!ELEMENT DataEvento %text;>
    <!ELEMENT Denominazione %text;>
    <!ELEMENT Distributore %text;>
    <!ELEMENT Esecutore %text;>
    <!ELEMENT ImportoFigurativo %text;>
    <!ELEMENT ImportoPrestazione %text;>
    <!ELEMENT Incidenza %text;>
    <!ELEMENT IncidenzaGenere (#PCDATA)>
    <!ELEMENT IVACorrispettivo %text;>
    <!ELEMENT IVAFigurativa %text;>
    <!ELEMENT IVAPrevendita %text;>
    <!ELEMENT Nazionalita %text;>
    <!ELEMENT OraEvento %text;>
    <!ELEMENT Prevendita %text;>
    <!ELEMENT ProduttoreCinema %text;>
    <!ELEMENT Quantita %text;>
    <!ELEMENT QuantitaEventiAbilitati %text;>
    <!ELEMENT SistemaEmissione %text;>
    <!ELEMENT TipoGenere %text;>
    <!ELEMENT TipoOrganizzatore EMPTY>
    <!ATTLIST TipoOrganizzatore valore (E | P | G) "G">
    <!ELEMENT TipoTassazione EMPTY>
    <!ATTLIST TipoTassazione valore (S | I) "S">
    <!ELEMENT TipoTitolo %text;>
    <!ELEMENT Titolo %text;>
    <!ELEMENT Turno EMPTY>
    <!ATTLIST Turno valore (F | L) #REQUIRED>
    <!ELEMENT Validita %text;>

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Forse non ho capito bene cosa intendi fare, però io sapevo che i dtd sono usati per descrivere e, nel caso, validare un file xml prima di utilizzarlo.

    Direi che se il tuo obiettivo è quello di importare i dati contenuti nell'xml in una tabella di MySQL puoi anche non considerare il dtd, a meno che tu non debba effettivamente validarlo (per documentarti clicca qui)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24
    Il problema è che non riesco a leggere questi file xml.
    Forse sbaglierò il codice... Ma che con altri file xml funziona...

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24
    Clasku con il valdate tutto ok. Ma continuo a non leggere l'elenco completo del file. Leggo solo un record di dati...
    Vorrei postare il codice del file xml, ma è troppo grande...

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova a postare due gruppi di dati completi (sempre se puoi per motivi di riservatezza)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24
    Questo è una parte di uno dei tanti xml che il sw dovrà gestire

    nome file: test_xm.xml

    <?xml version="1.0" ?>
    <!DOCTYPE RiepilogoGiornaliero (View Source for full doctype...)>
    <RiepilogoGiornaliero Sostituzione="N" Data="20130318" DataGenerazione="20130319" OraGenerazione="111830" ProgressivoGenerazione="1">
    <Titolare>
    <Denominazione>AZIENDA SPA</Denominazione>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <SistemaEmissione>11111111</SistemaEmissione>
    </Titolare>
    - <Organizzatore>
    <Denominazione>AZIENDA S.P.A.</Denominazione>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <TipoOrganizzatore valore="G" />
    - <Evento>
    - <Intrattenimento>
    <TipoTassazione valore="S" />
    <Incidenza>0</Incidenza>
    </Intrattenimento>
    - <Locale>
    <Denominazione>AZIENDA SALA 2</Denominazione>
    <CodiceLocale>1111111111111</CodiceLocale>
    </Locale>
    <DataEvento>20130318</DataEvento>
    <OraEvento>2015</OraEvento>
    - <MultiGenere>
    <TipoGenere>01</TipoGenere>
    <IncidenzaGenere>100</IncidenzaGenere>
    - <TitoliOpere>
    <Titolo>IL FIGLIO DELL'ALTRA</Titolo>
    <ProduttoreCinema>RAPSODIE PRODUCTION</ProduttoreCinema>
    <Autore />
    <Esecutore />
    <Nazionalita>FR</Nazionalita>
    <Distributore>TEODORA FILM</Distributore>
    </TitoliOpere>
    </MultiGenere>
    - <OrdineDiPosto>
    <CodiceOrdine>PT</CodiceOrdine>
    <Capienza>179</Capienza>
    - <TitoliAccesso>
    <TipoTitolo>I1</TipoTitolo>
    <Quantita>23</Quantita>
    <CorrispettivoLordo>18400</CorrispettivoLordo>
    <Prevendita>100</Prevendita>
    <IVACorrispettivo>1679</IVACorrispettivo>
    <IVAPrevendita>10</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <TitoliAccesso>
    <TipoTitolo>OX</TipoTitolo>
    <Quantita>4</Quantita>
    <CorrispettivoLordo>0</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>0</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <TitoliAccesso>
    <TipoTitolo>R1</TipoTitolo>
    <Quantita>1</Quantita>
    <CorrispettivoLordo>550</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>50</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <TitoliAccesso>
    <TipoTitolo>R4</TipoTitolo>
    <Quantita>16</Quantita>
    <CorrispettivoLordo>8800</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>800</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <TitoliAccesso>
    <TipoTitolo>RA</TipoTitolo>
    <Quantita>5</Quantita>
    <CorrispettivoLordo>2250</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>205</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <BigliettiAbbonamento>
    <CodiceFiscale>03939990960</CodiceFiscale>
    <CodiceAbbonamento>50051200</CodiceAbbonamento>
    <TipoTitolo>TD</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>400</ImportoFigurativo>
    <IVAFigurativa>36</IVAFigurativa>
    </BigliettiAbbonamento>
    </OrdineDiPosto>
    </Evento>
    - <Evento>
    - <Intrattenimento>
    <TipoTassazione valore="S" />
    <Incidenza>0</Incidenza>
    </Intrattenimento>
    - <Locale>
    <Denominazione>AZIENDA SALA 2</Denominazione>
    <CodiceLocale>1111111111111</CodiceLocale>
    </Locale>
    <DataEvento>20130318</DataEvento>
    <OraEvento>2230</OraEvento>
    - <MultiGenere>
    <TipoGenere>01</TipoGenere>
    <IncidenzaGenere>100</IncidenzaGenere>
    - <TitoliOpere>
    <Titolo>IL FIGLIO DELL'ALTRA</Titolo>
    <ProduttoreCinema>RAPSODIE PRODUCTION</ProduttoreCinema>
    <Autore />
    <Esecutore />
    <Nazionalita>FR</Nazionalita>
    <Distributore>TEODORA FILM</Distributore>
    </TitoliOpere>
    </MultiGenere>
    - <OrdineDiPosto>
    <CodiceOrdine>PT</CodiceOrdine>
    <Capienza>179</Capienza>
    - <TitoliAccesso>
    <TipoTitolo>I1</TipoTitolo>
    <Quantita>8</Quantita>
    <CorrispettivoLordo>6400</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>584</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <BigliettiAbbonamento>
    <CodiceFiscale>03939990960</CodiceFiscale>
    <CodiceAbbonamento>50049181</CodiceAbbonamento>
    <TipoTitolo>TC</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>280</ImportoFigurativo>
    <IVAFigurativa>25</IVAFigurativa>
    </BigliettiAbbonamento>
    - <BigliettiAbbonamento>
    <CodiceFiscale>03939990960</CodiceFiscale>
    <CodiceAbbonamento>50049722</CodiceAbbonamento>
    <TipoTitolo>TC</TipoTitolo>
    <Quantita>2</Quantita>
    <ImportoFigurativo>560</ImportoFigurativo>
    <IVAFigurativa>50</IVAFigurativa>
    </BigliettiAbbonamento>
    </OrdineDiPosto>
    </Evento>
    - <Evento>
    - <Intrattenimento>
    <TipoTassazione valore="S" />
    <Incidenza>0</Incidenza>
    </Intrattenimento>
    - <Locale>
    <Denominazione>AZIENDA SALA 2</Denominazione>
    <CodiceLocale>1111111111111</CodiceLocale>
    </Locale>
    <DataEvento>20130318</DataEvento>
    <OraEvento>1300</OraEvento>
    - <MultiGenere>
    <TipoGenere>01</TipoGenere>
    <IncidenzaGenere>100</IncidenzaGenere>
    - <TitoliOpere>
    <Titolo>QUARTET</Titolo>
    <ProduttoreCinema>HEADLINE PICTURES</ProduttoreCinema>
    <Autore />
    <Esecutore />
    <Nazionalita>UK</Nazionalita>
    <Distributore>BIM FILM</Distributore>
    </TitoliOpere>
    </MultiGenere>
    - <OrdineDiPosto>
    <CodiceOrdine>PT</CodiceOrdine>
    <Capienza>179</Capienza>
    - <TitoliAccesso>
    <TipoTitolo>IA</TipoTitolo>
    <Quantita>35</Quantita>
    <CorrispettivoLordo>15750</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>1435</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <TitoliAccesso>
    <TipoTitolo>OX</TipoTitolo>
    <Quantita>1</Quantita>
    <CorrispettivoLordo>0</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>0</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    <ImportoPrestazione>0</ImportoPrestazione>
    </TitoliAccesso>
    - <BigliettiAbbonamento>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <CodiceAbbonamento>10052242</CodiceAbbonamento>
    <TipoTitolo>I3</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>380</ImportoFigurativo>
    <IVAFigurativa>35</IVAFigurativa>
    </BigliettiAbbonamento>
    - <BigliettiAbbonamento>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <CodiceAbbonamento>10054828</CodiceAbbonamento>
    <TipoTitolo>I3</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>380</ImportoFigurativo>
    <IVAFigurativa>35</IVAFigurativa>
    </BigliettiAbbonamento>
    - <BigliettiAbbonamento>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <CodiceAbbonamento>10055158</CodiceAbbonamento>
    <TipoTitolo>I3</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>380</ImportoFigurativo>
    <IVAFigurativa>35</IVAFigurativa>
    </BigliettiAbbonamento>
    + <BigliettiAbbonamento>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <CodiceAbbonamento>22222222</CodiceAbbonamento>
    <TipoTitolo>I3</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>380</ImportoFigurativo>
    <IVAFigurativa>35</IVAFigurativa>
    </BigliettiAbbonamento>
    - <BigliettiAbbonamento>
    <CodiceFiscale>11111111111</CodiceFiscale>
    <CodiceAbbonamento>33333333</CodiceAbbonamento>
    <TipoTitolo>I4</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>330</ImportoFigurativo>
    <IVAFigurativa>30</IVAFigurativa>
    </BigliettiAbbonamento>
    - <BigliettiAbbonamento>
    <CodiceFiscale>22222222222</CodiceFiscale>
    <CodiceAbbonamento>44444444</CodiceAbbonamento>
    <TipoTitolo>I4</TipoTitolo>
    <Quantita>2</Quantita>
    <ImportoFigurativo>660</ImportoFigurativo>
    <IVAFigurativa>60</IVAFigurativa>
    </BigliettiAbbonamento>
    - <BigliettiAbbonamento>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <CodiceAbbonamento>55555555</CodiceAbbonamento>
    <TipoTitolo>I4</TipoTitolo>
    <Quantita>1</Quantita>
    <ImportoFigurativo>330</ImportoFigurativo>
    <IVAFigurativa>30</IVAFigurativa>
    </BigliettiAbbonamento>
    - <BigliettiAbbonamento>
    <CodiceFiscale>00000000000</CodiceFiscale>
    <CodiceAbbonamento>66666666</CodiceAbbonamento>
    <TipoTitolo>I4</TipoTitolo>
    <Quantita>10</Quantita>
    <ImportoFigurativo>3300</ImportoFigurativo>
    <IVAFigurativa>300</IVAFigurativa>
    </BigliettiAbbonamento>
    </OrdineDiPosto>
    </Evento>
    - <Abbonamenti>
    <CodiceAbbonamento>99999999</CodiceAbbonamento>
    <Validita>20131004</Validita>
    <TipoTassazione valore="S" />
    <Turno valore="L" />
    <CodiceOrdine>PT</CodiceOrdine>
    <TipoTitolo>I3</TipoTitolo>
    <QuantitaEventiAbilitati>10</QuantitaEventiAbilitati>
    - <AbbonamentiEmessi>
    <Quantita>1</Quantita>
    <CorrispettivoLordo>3800</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>345</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    </AbbonamentiEmessi>
    </Abbonamenti>
    - <Abbonamenti>
    <CodiceAbbonamento>99999999</CodiceAbbonamento>
    <Validita>20131004</Validita>
    <TipoTassazione valore="S" />
    <Turno valore="L" />
    <CodiceOrdine>PT</CodiceOrdine>
    <TipoTitolo>I3</TipoTitolo>
    <QuantitaEventiAbilitati>10</QuantitaEventiAbilitati>
    - <AbbonamentiEmessi>
    <Quantita>1</Quantita>
    <CorrispettivoLordo>3800</CorrispettivoLordo>
    <Prevendita>0</Prevendita>
    <IVACorrispettivo>345</IVACorrispettivo>
    <IVAPrevendita>0</IVAPrevendita>
    </AbbonamentiEmessi>
    </Abbonamenti>
    </Organizzatore>
    </RiepilogoGiornaliero>

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24
    Il problema è che vedo solo la prima riga, ma non riesco a tabellare i dati. Invio in allegato suna vista del tree dell'xml.
    Idee?
    Immagini allegate Immagini allegate

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24
    Sto facendo dei progressi, ma come concatenare più cicli foreaach? alternative?

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    24

    Risolto

    Risolto

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