Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Jdom

    sto utilizzando jdom ma ho incontrato un problema nella modifica di valori all'interno di file xml.
    ecco la situazione:

    //proprietaDatabase è una variabile d'istanza
    proprietaDatabase=new SaxBuilder().build(new File("dati.xml")).getRootElement().getChild("datab ase");//creazione elemento

    all'interno di un listener eseguo la modifica:
    //proprieta è un oggetto contenente nome dell'attributo e il corrispettivo nuovo valore
    proprietaDatabase.getChild(proprieta.getKey()).set Text(proprieta.getValue());

    eseguendo noto che riesco ad arrivare a prendere il child che mi serve ma non modifica il valore.
    cosa devo fare? il problema può essere legato al fatto che il file xml che ho creato non è legato nè ad un DTD nè ad uno schema.
    grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,323

    Moderazione

    Innanzitutto ti invito a specificare dei titoli più significativi in modo che chi legge il titolo capisca quale sia il problema che hai, senza dover entrare per forza nella discussione.

    Questo l'ho modificato io.


    Poi, credo che il problema sia semplicemente dovuto al fatto che dopo aver apportato le modifiche, non salvi il file.

    Il salvataggio avviene con la chiusura del Document.
    Prima devi ricavare il Document relativo al file XML:
    codice:
    Documento doc = proprietaDatabase=new SaxBuilder().build(new File("dati.xml"));
    Quindi accedere all'elemento tramite il document:
    codice:
    proprietaDatabase=doc.getRootElement().getChild
    Infine, dopo le modifiche, devi imporre la chiusura del document:
    codice:
    doc.close();
    Sinceramente, ora non ricordo se è necessario anche assegnare un XMLOutputter e riscrivere il file.


    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
    ho provato a vedere ma il metodo close per la classe Document non c'è.
    proverò a vedere con l'oggetto XMLOutputter, anche se in tutti gli esempi che ho visto non veniva mai citato poichè si utilizzava direttamente il metodo setText().

    grazie

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,323
    Effettivamente mi sono confuso con un altro tipo di Document (quello dei PDF)...
    Per salvare le modifiche al file XML è necessario salvarlo con un XMLOutputter.
    Le modifiche effettuate tramite i metodi setter vengono effettuate solamente in memoria, dopo il caricamento del documento.


    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.