Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    13

    Scrivere in un file XML

    Problema con XML. Ho fatto un form in HTML e i dati inseriti in questo Form devono essere salvati in un file XML e non in un Database allora ho scritto un modulo in HTML e nella servlet:

    FileOutputStream Output;
    PrintStream ps = null;

    //Creazione dell'XML;
    try {

    Output = new FileOutputStream("C:/utente.xml");
    file = new PrintStream(Output);
    } catch (Exception e) {
    out.println("Impossibile caricare il file utente.xml!");
    }

    ps.println("<?xml version=\"1.0\"?>");

    ps.println("<Utenti>");

    ps.println("<Record>");

    ps.println("<titolo>" + request.getParameter("titolo") + "</Titolo>");

    ps.println("<Anteprima>" + request.getParameter("anteprima") + "</Anteprima>");

    ps.println("<Testo>" + request.getParameter("test") + "</Testi>");


    ps.println("</Record>");

    ps.println("</Utenti>");

    ps.close();

    Adesso però cosa succede, il file xml mi viene creato, però ad ogni aggiunta mi si sostituisce ciò che c'era scritto in precedenza. In poche parole inserendo qualcosa di nuovo nel forum mi va a sovrascrivere e non uno di seguito all'altro. Grazie in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    36
    ora non ricordo come si chiamano però ci sono delle api apposta per leggere e scrivere xml

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    13

    ...

    La scrittura nel file XML è già stata fatta, soltanto che ogni qualvolta che aggiungo qualcosa, mi viene sostituito quello che c'era in precedenza.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    36
    tramite api per xml puoi facilitarti la lettura e scrittura e tenere tutto in memoria...oppure devi farti a mano la ricerca prima della fine del file e prima di chiudere il nodo root appendere i nuovi record...ma secondo me come hai fatto ti stai complicando la vita

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

    Re: ...

    Originariamente inviato da Nemesi87
    La scrittura nel file XML è già stata fatta, soltanto che ogni qualvolta che aggiungo qualcosa, mi viene sostituito quello che c'era in precedenza.
    La questione non è tanto l'append "fisico" (cosa semplice .... FileOutputStream ha il costruttore con il flag di append) ma il fatto che nei documenti XML c'è una sintassi da rispettare, che prevede un unico tag radice. E se aggiungi qualcosa lo devi aggiungere dentro il tag radice .... quindi devi aggiungerlo non alla fine fisica del file ma dentro il file. E questo, solo con gli stream non è fattibile.

    Devi rileggere e "parsare" il documento e poi riscriverlo per intero.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    36
    e un piccolo consiglio...fatti delle classi bean e delle classi DAO per scrivere nel file...non farlo direttamente dalla servlet

  7. #7
    non solo: occhio che come fai tu stai un attimo a scrivere file XML nel validi; basta che l'utente inserisca i caratteri minore o maggiore e il tuo file diventa incorretto...
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  8. #8
    usa jDom per manipolare il tuo xml, così anche se l'utente inserisce caratteri che rompono tipo < < /, se ne cura jdom a scrivere correttamente nel tuo xml con caratteri tipo &lt &rt e quant'altro.
    poi se inizi ad usare anche xpath è una sciocchezza leggere o scrivere in qualsiasi punto del tuo xml

  9. #9

    ...

    Grazie mille...conoscete magari qualche sito spiega bene la scrittura di un file xml?

  10. #10

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 © 2026 vBulletin Solutions, Inc. All rights reserved.