Salve a tutti!!
Ho un piccolo problemino con jdom, in particolare con il parser..
Allora, il mio problema è:
ho un file xml da leggere
da cui vorrei "tirar fuori", con un form html in cui scrivere il titolo, appunto la stringa scritta nel form.codice:<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="relaz.xsl"?> <relazioni> <relazione> <autore>dave83</autore> <titolo>DAVE</titolo> <data>22-1-2005--11.25.13</data> <testo>qui puoi scrivere al tua relazione</testo> <revisore>nessun revisore</revisore> </relazione> <relazione> <autore>dave83</autore> <titolo>xfsfsfsfs</titolo> <data>22-1-2005--11.31.49</data> <testo>qui puoi scrivere al tua relazione</testo> <revisore>nessun revisore</revisore> </relazione> </relazioni>
Per esempio: nel form scrivo "DAVE", e vorrei che mi stampasse a video tutte le relazioni con titolo "DAVE"!!!
questa è la mia servlet:
il problema è che la servlet legge SOLAMENTE il primo livello del file xml...codice: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; import org.jdom.Comment; import org.jdom.Document; public class RicercaTitolo extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, java.io.IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); int n=0; int l=0; String titolo=req.getParameter("titolo"); String dbUrl = "jdbc:odbc:upload"; String query="SELECT * FROM upload WHERE file ='"+titolo+"'"; int i=0; String risultato=null; String risultato1=null; String risultato2=null; String risultato3=null; String risultato4=null; String risultato5=null; try{ SAXBuilder builder = new SAXBuilder(); Document doc = builder.build("C:\\jakarta-tomcat-3.3.2\\webapps\\prova2\\articoli\\relazioni.xml"); Element root = doc.getRootElement().getChild("relazione"); risultato = root.getChild("titolo").getText(); risultato2 = root.getChild("autore").getText(); risultato3 = root.getChild("data").getText(); risultato4 = root.getChild("testo").getText(); risultato5 = root.getChild("revisore").getText(); if(risultato.equals(titolo)) { i++; out.println("<html>"); out.println("<body>"); out.println("<center><H1>La tua ricerca ha portato a "+i+" risultati:</H1>"); out.println("[*]"+risultato+""); out.println(" "+risultato2+"</p>"); out.println(" "+risultato3+"</p>"); out.println(" "+risultato4+"</p>"); out.println(" "+risultato5+"</p>"); out.println("</body>"); out.println("</html>"); } }catch (Exception e){ out.println("Errore7!!!!!!!"); out.println(e.toString());} }}
Cioè se srcivo nel form "xfsfsfsfs"..
dovrebbe stamparmi tutti i dati ma...non è così!!!!!Legge solo il primo tag <relazione>!!!!!codice:...<relazione> <autore>dave83</autore> <titolo>xfsfsfsfs</titolo>....
Qualcuno sa aiutarmi????
Grazie a tutti!!!!!!!!!!!!!!!!!!!!!!!!

Rispondi quotando

