Avatar billede skurggman Nybegynder
04. marts 2004 - 17:04 Der er 1 kommentar og
1 løsning

XML, jdom og servlets?

Hej

jeg har skrevet et stykke kode som skulle tage alle vores jokes i en given kategori og skrive ud i xml form... hvorfor skriver den et tomt xml dokument ud som i kan se på linket...?

Kode:
  response.setContentType("text/html");
      //PrintWriter out = response.getWriter();
      String x = request.getParameter("category");
      Document document = new SAXBuilder().build(new File("/home/cleo1/u031407/dWebTek/jokeml.xml"));
      Namespace ns = Namespace.getNamespace("jml","http://www.brics.dk/dWebTek/JokeML");
      SortedSet jokes = Collections.synchronizedSortedSet(new TreeSet());
      List children = document.getRootElement().getChildren("joke");
      Iterator iter = children.iterator();   
      Element root = new Element("collection",ns);
            while (iter.hasNext()) {
              Element e = new Element("category", root.getNamespace());
              Element joke = (Element) iter.next();
              String s = joke.getAttributeValue("category");
                  if (s.equals(x)) {
                e.addContent(s);
                root.addContent(e);
              }
            }
            Document d = new Document(root);
              new XMLOutputter().output(d, response.getOutputStream());

Link:
http://dwebtek.daimi.au.dk:8080/u031407/JokeServer/Retrieve?category=animals

XML dokument som den henter fra:
<?xml version="1.0" encoding="iso-8859-1"?>
<jml:collection xmlns:jml="http://www.brics.dk/dWebTek/JokeML">
  <jml:joke id="u655632gs6" category="animals">
    <jml:title>Two Cows in a Field</jml:title>
    <jml:date>11022004</jml:date>
    <jml:setup>
      Two cows are standing in a field eating grass. The first cow says: "Moooo"!
    </jml:setup>
    <jml:punchline>
      The second cow replies: "Hey, I was just gonna say that"!
    </jml:punchline>
  </jml:joke>

<jml:joke id="u655632gs7" category="århus joke">
    <jml:title>Two Cows in a Field</jml:title>
    <jml:date>11022004</jml:date>
    <jml:setup>
      Two cows are standing in a field eating grass. The first cow says: "Moooo"!
    </jml:setup>
    <jml:punchline>
      The second cow replies: "Hey, I was just gonna say that"!
    </jml:punchline>
  </jml:joke>

  </jml:collection>
Avatar billede skurggman Nybegynder
04. marts 2004 - 20:12 #1
lukker... fandt svaret selv :)
Avatar billede arne_v Ekspert
04. marts 2004 - 22:37 #2
Som jeg formoder er:

List children = document.getRootElement().getChildren("joke", ns); // tilføj ns
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