Avatar billede ulrikp Nybegynder
26. november 2001 - 15:53 Der er 1 kommentar og
1 løsning

XML Parser

Jeg vil gerne parse et xml-dokument i en servlet og udskrive output\'et til browseren, men det har jeg problemer med.
Jeg har prøvet suns tutorial, som er en applikation. Den bruger SAXParser\'en og jeg har sådan set også fået det til at virke, men problemet er, at den er lavet på en sådan måde, at class\'en extender en DefaultHandler, som starter forskellige metoder alt efter hvilken xml-tag den møder. Og en servlet kan jo ikke extende en DefaultHandler.

Derfor har jeg indefra servlet\'en prøvet at instantiere et Parser-objekt, som parser xml-dokumentet og lægger output\'et i en string, som jeg umiddelbart efter prøver at få fat i inde fra servletten, men når jeg gør det, får jeg en java.lang.StackOverflowError.

Herunder er links til suns javasource og xml-dok.
http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/sax/samples/slideSample01.xml
http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/sax/work/Echo03.java
Avatar billede logical Nybegynder
29. november 2001 - 15:49 #1
Prøv det her:

public class MyServlet extends HttpServlet {

private class MyHandler extends DefaultHandler {

  Copy Echo2 into here....

  // Add this method.
  public void setOut(Writer out) {
    this.out = out;
  }
}

  public void doGet(HttpServletRequest req, HttpServletResponse) throws...
{
       
        // Use an instance of Echo class as the SAX event handler
        DefaultHandler handler = new MyHandler();
        handler.setOut(response.getWriter());

        // Use the default (non-validating) parser
        SAXParserFactory factory = SAXParserFactory.newInstance();
        try {
            // Parse the input
            SAXParser saxParser = factory.newSAXParser();
            saxParser.parse( new File(someFile), handler);

        } catch (Throwable t) {
            t.printStackTrace();
        }

}
}
Avatar billede ulrikp Nybegynder
17. januar 2003 - 08:46 #2
Det viste sig at være et memory-lack problem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester