Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Xml Jaxp

  1. #1
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    Xml Jaxp

    Salve,
    ho da fare un breve esercizio con un xml e jaxp.
    ora,ho sempre usato jdom e mi sembrava comodo quello, quindi non sono pratico di dom (come fatto in jaxp) e sax.

    Praticamente, ho un XML fatto così:

    codice:
    <discografia>
       <autore>prova</autore>
       <title>title discografia</title>
       <dischi>
          <disco>
             <date>01/01/2003</date>
             <title>title 01</title>
             <tracce>
                <traccia>
                   <title>Title track 01</title>
                </traccia>
                <traccia>
                   <title>Title track 0a</title>
                </traccia> 
             </tracce>
          </disco>
          <disco>
             <date>04/04/2003</date>
             <title>title 02</title>
             <tracce>
                <traccia>
                   <title>Title track 04</title>
                </traccia>
                <traccia>
                   <title>Title track 05</title>
                </traccia> 
             </tracce>
          </disco>
         <disco>
             <date>05/05/2003</date>
             <title>title 078</title>
             <tracce>
                <traccia>
                   <title>Title track 000</title>
                </traccia>
                <traccia>
                   <title>Title track 101</title>
                </traccia> 
             </tracce>
          </disco>
       </dischi>
    </discografia>
    e dovrei stampare a video una cosa del tipo

    titolo discografia, titolo cd, titolo traccia

    quindi una cosa del tipo

    title discografia, title 01 , Title track 01
    title discografia, title 01 , Title track 0a

    ora, per fare queso penso sia meglio usare dom, giusto?
    e fare 3 cicli for.
    uno su i cd e uno sulle traccie in modo da stampare.
    il problema è che non riesco a capire come fare.
    se ad esempio metto di stampare solo i Node.TEXT_NODE spesso mi stampa stringhe vuote.
    qualcuno di voi ha pezzi di codice che stampino cose simili?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Xml Jaxp

    Originariamente inviato da bako
    ora, per fare queso penso sia meglio usare dom, giusto?
    Ammesso che la struttura sia e resti quella sopratutto per la sequenza dei tag, allora è molto lineare e sequenziale e i dati li devi stampare in un ordine che segue appunto la struttura del documento.
    Quindi potresti usare sia l'approccio SAX che DOM.

    Con SAX sarebbe un po' più lungo perché dovresti tenerti traccia del livello di annidamento .... <title> c'è a livelli diversi di annidamento quindi devi discernere quale!
    Ma è possibile perché il titolo della discografia, è unico e quando lo trovi te lo metti da parte. Quando trovi il titolo del disco, idem te lo metti da parte. Quando trovi il titolo della traccia, allora lo stampi insieme agli altri 2 dati.

    La sequenza dei tag aiuta in questo. Se il <title> del disco fosse messo dopo <tracce>, beh, qualche problemino lo avresti.

    Originariamente inviato da bako
    e fare 3 cicli for.
    uno su i cd e uno sulle traccie in modo da stampare.
    il problema è che non riesco a capire come fare.
    se ad esempio metto di stampare solo i Node.TEXT_NODE spesso mi stampa stringhe vuote.
    qualcuno di voi ha pezzi di codice che stampino cose simili?
    Esempi mi sembra di averne già fatti sul forum per stampare tutti i nodi con DOM. Se vuoi li cerco.

    Se non c'è uno "schema" (es. DTD) che indica che un nodo ha contenuto "element only", allora ti trovi in mezzo un sacco di altri nodi di testo per come è scritto il documento.

    Ti conviene usare getElementsByTagName() per chiedere una lista dei soli nodi con un certo nome. Se hai il Element <dischi>, allora su quello invoca getElementsByTagName("disco") e avrai la lista con solo i nodi <disco>. I nodi di testo in mezzo non li avrai.
    Idem per le altre parti. Se sei su <tracce> chiedi tutti i nodi <traccia>.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.