Ich habe folgenden kleinen XML parser (mit jdom):
Damit will ich das folgende File parsen:
Nun bekomme ich aber beim aufruf
nur eine Liste mit einem Element zurück (anstatt einmal 3 und einmal 4).
Das
gibt mir die korrekte anzahl elemente zurück (2). Kann mir jemand sagen, was ich falsch mache?
thx
Code:
List<Element> users;
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("user.xml");
Element rootElement = doc.getRootElement();
users = rootElement.getChildren();
Iterator<Element> it;
it = users.iterator();
Element e;
while (it.hasNext()){
e = it.next();
System.out.println(e.getChild("name").getText());
System.out.println(e.getChild("passwd").getText());
System.out.println(e.getChild("expires").getText());
List<Element> privileges;
privileges = e.getChildren("privileges");
System.out.println(privileges.size());
Iterator<Element> pit;
pit = privileges.iterator();
Element f;
while (pit.hasNext()){
f = pit.next();
System.out.println(f.getChild("privilege").getText());
}
}
}
Damit will ich das folgende File parsen:
<users>
<user>
<name>Hans</name>
<passwd>test</passwd>
<privileges>
<privilege>action1</privilege>
<privilege>action2</privilege>
<privilege>action3</privilege>
</privileges>
<expires>1.1.2006</expires>
</user>
<user>
<name>Peter</name>
<passwd>test</passwd>
<privileges>
<privilege>action1</privilege>
<privilege>action3</privilege>
<privilege>action4</privilege>
<privilege>action5</privilege>
</privileges>
<expires>1.8.2005</expires>
</user>
</users>
Nun bekomme ich aber beim aufruf
Code:
privileges = e.getChildren("privileges");
Das
Code:
users = rootElement.getChildren();
thx