Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    11

    Creare XML tramite JDOM

    Buonasera a tutti,
    ho girato sul forum ma la problematica che vi esporrò non sono riuscita a trovarla...
    E' la prima volta che lavoro con file XML, e librerire JDOM, quindi mi scuso a priori se chiedo cose, forse banali.
    Devo produrre un semplice file XML con tag e la prima riga deve contenere la seguente indicazione:

    <?xml version="1.0" encoding="iso-8859-1" standalone="yes">
    Il file sono riuscito a crearlo correttamente, l'unica cosa che non riesco ad inserire è la dicitura standalone="yes".
    Di seguito vi riporto il codice che proceduce il file:
    codice:
    FileOutputStream out = new FileOutputStream(letturaFile()+"\\IA-Export.xml");
                XMLOutputter outputter = new XMLOutputter();
                outputter.setFormat(Format.getPrettyFormat().setEncoding("iso-8859-1"));
                outputter.output(document, out);
                out.flush();
                out.close();
    Come posso inserire questo parametro?
    attualemente riesco a scrivere quanto segue:
    <?xml version="1.0" encoding="iso-8859-1"?>

    Altro quesito, diciamo il più importante....
    il file che genero viene scritto nel seguente modo:

    codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <FlussoAnagrafico>
      <CodiceDBOrigine>XXXXXX</CodiceDBOrigine>
      <DescrizioneDBOrigine>DATABASE XXXXXX</DescrizioneDBOrigine>
      <ApplicativoDestinazione>P1</ApplicativoDestinazione>
      <Azienda>
        <CodiceFiscaAzienda /> 
        <CodiceAzienda />
        <CodiceAziendaPaghe />
      </Azienda>
    La mia necesità è chiudere i tag pure se il testo che passo all'elemento è vuoto(null).
    In poche parole dovrebbe uscire in questo modo:

    codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <FlussoAnagrafico>
      <CodiceDBOrigine>XXXXXX</CodiceDBOrigine>
      <DescrizioneDBOrigine>DATABASE XXXXXX</DescrizioneDBOrigine>
      <ApplicativoDestinazione>P1</ApplicativoDestinazione>
      <Azienda>
        
        <CodiceFiscaAzienda></CodiceFiscaAzienda>
        <CodiceAzienda ></CodiceAzienda />
        <CodiceAziendaPaghe></CodiceAziendaPaghe>
        
     </Azienda>
    .......
    ........
    Vi riporto il codice che ho scritto in java:

    codice:
    Element FlussoAnagrafico = new Element("FlussoAnagrafico");
                Document document = new Document(FlussoAnagrafico);
    
                Element CodiceDBOrigine = new Element("CodiceDBOrigine");
                CodiceDBOrigine.setText("XXXXXXX");
                Element DescrizioneDBOrigine = new Element("DescrizioneDBOrigine");
                DescrizioneDBOrigine.setText("DATABASE XXXXXXX");
                Element ApplicativoDestinazione = new Element("ApplicativoDestinazione");
                ApplicativoDestinazione.setText("P1");
                FlussoAnagrafico.addContent(CodiceDBOrigine);
                FlussoAnagrafico.addContent(DescrizioneDBOrigine);
                FlussoAnagrafico.addContent(ApplicativoDestinazione);
                ..........
                .............
    Come devo settare l'elemento per chiuderlo nel caso in cui il valore è zero?
    Spero di essere stato chiaro.
    Vi ringrazio in anticipo
    Saluti
    Luca

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

    Re: Creare XML tramite JDOM

    Originariamente inviato da lauluc82
    Devo produrre un semplice file XML con tag e la prima riga deve contenere la seguente indicazione:

    <?xml version="1.0" encoding="iso-8859-1" standalone="yes">
    Il file sono riuscito a crearlo correttamente, l'unica cosa che non riesco ad inserire è la dicitura standalone="yes".
    XMLOutputter non supporta la gestione del standalone. Comunque un standalone "yes" dice ad un parser che non c'è un external DTD necessario per il parsing.

    Originariamente inviato da lauluc82
    La mia necesità è chiudere i tag pure se il testo che passo all'elemento è vuoto(null).
    In poche parole dovrebbe uscire in questo modo:

    codice:
        
        <CodiceFiscaAzienda></CodiceFiscaAzienda>
        <CodiceAzienda ></CodiceAzienda />
        <CodiceAziendaPaghe></CodiceAziendaPaghe>
       
    Il Format ha il metodo setExpandEmptyElements(boolean expandEmptyElements).

    Comunque, giusto per precisare, <CodiceFiscaAzienda /> è perfettamente corretto ed è equivalente (per un qualunque parser) alla versione non abbreviata <CodiceFiscaAzienda></CodiceFiscaAzienda>.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    11
    Ok perfetto, la chiusura del tag funziona perfettamente, ma non ho capito riguardo il problema sullo standalone="yes".
    Esiste qualche sistema per scriverlo?
    Grazie per i consigli
    Saluti
    Luca

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da lauluc82
    ma non ho capito riguardo il problema sullo standalone="yes".
    La questione è solo: chi è che poi legge questo XML?

    Se standalone è "yes" vuol dire che un parser che legge il documento può "sapere" già subito che nel documento non si farà riferimento ad un external DTD. Detto in altro modo, con standalone yes, se ci fosse un external DTD, il parser dovrebbe dare errore.

    Tutto qui.
    Ma nel tuo documento, perlomeno in quello che hai postato, si vede che non c'è alcun riferimento ad un external DTD. Quindi??

    Ripeto, la questione è chi leggerà questo XML.
    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.