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

    [java servlet] XML e XMLOutputter

    Salve a tutti, chiedevo se qualcuno poteva aiutarmi in un piccolo problema.
    Allora, ho realizzato una servlet http che prende i dati da una form html (recupera il titolo e il testo di una relazione da una textarea) e li inserisce in UN XML GIA' ESISTENTE.
    Cioè io ho creato il file "relazioni.xml" e al suo interno dovrebbe scrivere così:

    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    
    
    <relazione>
    <autore>dave83</autore>
    <titolo>regergggggggggggggg</titolo>
    <testo>qui puoi scrivere al tua relazionefasddddddddddddddddddddd</testo>
    <revisore>nessun revisore</revisore>
    </relazione>
    </root>
    La furbata è che la servlet legge l'attributo root e non sovrascrive il contenuto ma inserisce dentro i tag root appunto i nuovi tag per ogni nuova relazione!!Però tutto tutto non poteva andare liscio...
    Invece di scrivermi come sopra mi scrive così:
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <root>
    
    
    </root>
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    
    
    <relazione>
    <autore>dave83</autore>
    <titolo>regergggggggggggggg</titolo>
    <testo>qui puoi scrivere al tua relazionefasddddddddddddddddddddd</testo>
    <revisore>nessun revisore</revisore>
    </relazione>
    </root>
    Adesso posto anche il codice così magari vi spiego anche un'altra cosa:
    codice:
    import java.net.*;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import java.util.*;
    import org.jdom.output.*;
    import org.jdom.Element;
    import org.jdom.input.SAXBuilder;
    
    import org.jdom.output.XMLOutputter;
    
    public class word extends HttpServlet {
    public void service(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
    
    
    
    response.setContentType("text/html");
    
    	ServletConfig c = getServletConfig();
    	ServletContext context = c.getServletContext();
    
    	PrintWriter out = response.getWriter();
    	HttpSession se=request.getSession(true);
    	Date today = new Date();
    	String data = today.getDate()+"-"+(today.getMonth()+1)+"-"+(today.getYear()+1900)+"--"+
    	today.getHours()+"."+today.getMinutes()+"."+today.getSeconds()+"";
    	String loguser;
    			
    	String rev="nessun revisore";
    
    String relazione = request.getParameter("rel");
        
        String titolo;
        String name;
        
    	titolo = request.getParameter("titolo");
    	loguser = (String)(se.getValue("username"));
    	name="relazioni.xml";
    	context.setAttribute("nome",name);
    	context.setAttribute("autore",loguser);
    	context.setAttribute("time",data);
    	context.setAttribute("title",titolo);
    
     
    
    
    if(loguser.equals(null)){
    				out.println("<html>");
    				out.println("<BODY background=ovibos_moschatus01.jpg>");
    				out.println("<h1>La tua sessione è scaduta o non hai effettuato il login!!</h1>");
    				out.println("</body>");
    				out.println("</html>");
    			} else {
    				// Creo la radice
     /**/File f = new File("C:\\jakarta-tomcat-3.3.2\\webapps\\prova2\\articoli\\relazioni.xml"); 
                  SAXBuilder saxbuilder = new SAXBuilder
                     (
                               "org.apache.xerces.parsers.SAXParser",false
    
                      );
    
                    /*
                          ISTANZIAMO UN OGGETTO Document
                      /**/
                   Document doc = null;
    try
                     {
                         /*
                             COSTRUIAMO UN Document DA UN XML
                        /**/
                    doc = saxbuilder.build(f);
                     }catch (JDOMException e)
                     {
                            System.err.println ("errore: "+e);
                     } 
    
    
    
    
    		Element root = doc.getRootElement();
    
                     /*
                            ISTANZIAMO ALTRI OGGETTI Element 
                            PASSANDOGLI LE STRINGHE
                            CHE SARANNO I NOMI DEI NOSTRI TAG 
                         /**/
                    Element newinitparam = new Element("relazione");
                        Element paramname = new Element("autore");
                        Element paramvalue = new Element("titolo");
    					Element testo = new Element("testo");
    					Element revisore = new Element("revisore");
                    /*
                           ASSEGNAMO DEI VALORI DI TIPO "CDATA"
                           AI TAG param-name E param-value:
                          <param-name>nuovo nome</param-name>
                        /**/
                   paramname.addContent(loguser);
                   paramvalue.addContent(titolo);
    			   testo.addContent(relazione);
                   revisore.addContent(rev);
                  /*
                         AGGIUNGIAMO I TAG param-name E
                         Param-value AL TAG new-init-param
                     /**/
                      newinitparam.addContent(paramname);
                          newinitparam.addContent(paramvalue);
    						newinitparam.addContent(testo);
                				newinitparam.addContent(revisore);
                					
                
                 /*				
                       AGGIUNGIAMO IL TAG new-init-param
                       AL SUPERTAG root
                   /**/
                  root.addContent(newinitparam);
    
    
    try {
       FileOutputStream fos = new FileOutputStream("C:\\jakarta-tomcat-3.3.2\\webapps\\prova2\\articoli\\relazioni.xml",true);
       XMLOutputter outp = new XMLOutputter();
       outp.setIndent(true);
       outp.setNewlines(true);
       outp.output(doc, fos); 
    } catch (Exception e) {}
    
    
    
    }
    
    
    try {response.sendRedirect("http://localhost:8080/prova2/inserimento2");}
    catch(IOException e){
    }}
    
    
    }
    Nelle 2 righe rosse ho evidenziato ciò che secondo me risolve il problema, però il compilatore non prende setIndent e setNewlines come boolean e non lo compila!!!!!!!!!!!!HELP vi prego!!!!!!!!!!!!!!!!!!!!!!!!!
    Grazie!!!!!!

  2. #2
    Già risolto!!!!!!

  3. #3
    Bastava eliminare il "true" nel
    codice:
    FileOutputStream fos = new FileOutputStream("C:\\jakarta-tomcat-3.3.2\\webapps\\prova2\\articoli\\relazioni.xml");
    Ciao a tutti!!

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.