Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52

    Leggere XML molto grande

    Ciao,

    sto realizzando un programmino Java che carica degli XML che uso per lavoro e li visualizza in un'interfaccia apposita. Il problema è che i file in questione sono molto grandi (arrivano fino a diversi GB) e caricarli tutti in memoria diventa un problema...

    Il file presenta la struttura seguente:
    codice:
    <XML>
        <Record>
            <Nome>Mario</Nome>
            <Cognome>Rossi</Cognome>
            <Indirizzo>
                <Via>Via Verdi 25</Via>
                <Citta>Milano</Citta>
                <CAP>10150</CAP>
                <...></...>
            </Indirizzo>
        </Record>
        <Record>
            <Nome>Filippo</Nome>
            <Cognome>Bianchi</Cognome>
            <Indirizzo />
        </Record>
    </XML>
    In pratica quello che vorrei fare è mostrare all'utente nella schermata principale solo i campi Nome e Cognome, con tasto che, se il relativo nodo Indirizzo è pieno, mostri i dati dell'Indirizzo.

    Sarebbe possibile effettuare le due interrogazioni separatamente in modo da non caricare in memoria l'intero XML?

    Ho provato a cercare info su XPath, ma non capisco se il file deve comunque necessariamente essere caricato tutto in memoria...

    Mi sapete aiutare?

    Grazie e ciao,
    Francesco

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Ci sono due tipi di parser proprio per questo. DOM e SAX. DOM carica tutto un memoria, mentre SAX sia basato su events per ciascun elemento (quindi non deve caricare tutto). Quindi se parliamo di diversi GB dovresti usare SAX.

    http://en.wikipedia.org/wiki/Simple_API_for_XML

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it L'avatar di ziz
    Registrato dal
    Jun 2008
    Messaggi
    52
    Grazie mille neroux!!

    Ho seguito il tuo consiglio ed effettivamente questa volta il programma funziona molto meglio anche con file molto grandi. Ho provato anche ad utilizzare StAX che dovrebbe mantenere le caratteristiche di SAX evidenziando prestazioni ancora migliori (anche se ad essere onesti non ho notato grandissime differenze in termini di performance...)

    Ancora grazie!

    Ciao,
    Francesco

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.