# jdom: getChildren() problem



## berniebert (26. Sep 2007)

hallo zusammen,
ich habe ein eigenartiges jdom problem. den folgenden xml-inputstream bekomme ich durch einen http GET request:


```
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:prism="http://prismstandard.org/namespaces/1.2/basic/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns="http://www.connotea.org/2005/01/schema#">
  
  <Post rdf:about="EINE_URL">
	
  </Post>
  
</rdf:RDF>
```

meine sendRequest() methode liefert mir das o.g. xml als String. ich baue davon ein jdom-Document:


```
String in = sendRequest();
SAXBuilder parser = new SAXBuilder();
Document doc = parser.build(new InputSource(new StringReader(in)));
```
dann suche ich das Element "Post", das ein child des Root-Elements ist:


```
List posts = doc.getRootElement().getChildren("Post");
System.out.println(posts.size()) // ergibt: 0
```

angeblich keine Children "Post" ?? aber es gibt ein Child "Post". das kann ich auch überprüfen durch:


```
List posts = doc.getRootElement().getChildren();
Element el = (Element)posts.get(0);
System.out.println(el.getName()); // ergibt: Post
```

also die erste ausgabe sagt, dass es kein child "Post" gibt, und die zweite sagt, dass das erste child "Post" heisst. kann mir das jemand erklären? vielen dank dafür!


----------



## byte (26. Sep 2007)

Könnte am fehlenden Namespace liegen. IIRC erben alle Kinder den Namespace des Parents. Und da das Root-Element einen Namespace hat, existieren keine Children ohne Namespace. Benutze mal die Methode getChildren(name, namespace).


----------



## berniebert (26. Sep 2007)

leider tuts das auch nicht... auch keine Children vorhanden. ich habe jetzt folgendes gemacht:


```
Document doc = buildDocument(in);
			Namespace ns = doc.getRootElement().getNamespace();
			System.out.println(ns.getPrefix()); // ergibt "rdf"
			List posts = doc.getRootElement().getChildren("Post", ns);
			System.out.println(posts.size()); // ergibt 0
```


----------



## byte (26. Sep 2007)

Dann habe ich auch keine Ahnung. Wenn Du eh nur ein paar Infos aus der XML auslesen willst, ist JDOM eh das falsche Framework. Nimm lieber StAX.


----------



## berniebert (26. Sep 2007)

ok danke trotzdem für den versuch!


----------

