Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [java] Jdom

  1. #1

    [java] Jdom

    Ciao a tutti!
    Devo scrivere in java un'applicazione che modifichi alcuni file xml; da quanto sono riuscita a capire, posso leggere e modificare codice xml tramite la libreria DOM. La lettura, capito come funziona il meccanismo dei nodi "#text", non mi crea per ora grossi problemi, ma per quanto riguarda la scrittura ne ho uno abbastanza fondamentale: io ho un oggetto File collegato al mio file xml; ne estraggo un oggetto di tipo Document, che rappresenta la struttura ad albero del mio file, e nel document eseguo le modifiche; poi chiudo la mia applicazione, apro il file xml e vedo che le modifiche non ci sono! Quindi mi manca un passaggio: come faccio a trasferire le modifiche che ho apportato all'oggetto document nel mio file?

    Grazie a kiunque mi risponderà!


  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Io ho usato questo codice, di JDOM:
    codice:
    try {
       XMLOutputter out = new XMLOutputter("   ", true, "UTF-8");
       out.setLineSeparator("\n");
       out.output(doc, new FileOutputStream(fileOut));
    } catch (Exception e) { e.printStackTrace(); }
    dove il parametro fileOut è l'oggetto di tipo File, mentre doc è l'oggetto Document che rappresenta l'XML.

    I parametri del costruttore XMLOutputter sono questi:

    1) Parametro String che indica cosa si vuole usare come indentazione nella produzione del documento XML (io ho scelto di usare 3 spazi)

    2) Parametro boolean che indica se si vuole o meno che il documento XML sia formattato andando a capo per ogni tag (altrimenti li mette tutti in una sola riga)

    3) Parametro String che indica la codifica del documento XML.

    Questo costruttore non c'è nella documentazione (e mi domando perchè) ma compare utilizzando strumenti di editing come JBuilder. Effettivamente, andando a decompilare la classe XMLOutputter si può verificare la presenza di questo costruttore pubblico.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    grazie mille!

    Ciao

  4. #4
    ho un problema con la JDK 4.4.2 non trova la classe XMLOutputter... in che package si trova?
    un'altra cosa....sempre nella stessa applicazione, in un altro punto del programma devo creare una copia di un file, ma non ci riesco! Il massimo che ho ottenuto è rinominare il file spostandolo nella posizione di destinazione, ma non va bene: non posso chiedere al mio utente di dirmi dov'è un file che ha creato lui e farglielo sparire da sotto il naso!!!
    Perciò devo fare una copia; ho usato il seguente codice (copiato da un manuale...):
    ... nomemetodo(...)throws IOException{
    ...
    try{
    FileOutputStream out = new FileOutputStream(filevecchio);
    FileInputStream in = new FileInputStream(filenuovo);
    byte buffer[] = new byte[256];
    int n;
    while((n = in.read(buffer)) > -1)
    out.write(buffer,0,n);
    out.close();
    in.close();
    }
    }

    Temo che il problema sia che filenuovo non esiste ancora fisicamente sul disco (è solo un oggetto File)... ma come lo creo?

    Ciao e grazie

  5. #5

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La classe XMLOutputter si trova in org.jdom.output.

    Per il secondo punto non ho capito bene qual è il problema e cosa devi fare di preciso...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.