Hallo,
ich suche eine Möglichkeit, aus dieser XML-Datei
mit dem entsprechenden Attribut der City-Elemente dei passenden Werte der Kindelemente auszulesen.
Dieser Versuch liefert eine NullPointerException:
Während diese Version alle Werte der Distance-Elemente aller City-Elemente liefert:
Wie kann ich mit jdom2 gezielt nur die Kindelemente mit einem bestimmten Attribut im Elternelement auslesen?
Gruß
Wambui
ich suche eine Möglichkeit, aus dieser XML-Datei
Code:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<city name="München">
<distance>221.357</distance>
<duration>2.32</duration>
</city>
<city name="Frankfurt">
<distance>204.365</distance>
<duration>2.049</duration>
</city>
<city name="Köln">
<distance>367.153</distance>
<duration>3.404</duration>
</city>
</root>
mit dem entsprechenden Attribut der City-Elemente dei passenden Werte der Kindelemente auszulesen.
Dieser Versuch liefert eine NullPointerException:
Java:
package com.company;
import org.jdom2.*;
import org.jdom2.input.SAXBuilder;
import java.io.IOException;
public class ReadXmlFile {
public static void main(String[] args) throws IOException, JDOMException {
SAXBuilder builder = new SAXBuilder();
Document jdomDoc = builder.build("City.xml");
Element root = jdomDoc.getRootElement();
for (int i = 0; i < root.getContentSize(); i++) {
Content content = root.getContent().get(i);
if (content instanceof Element) {
if ("München".equals(((Element) content).getChild("city").getAttributeValue("name"))) {
System.out.println(((Element) content).getChildText("distance"));
}
}
}
}
}
Während diese Version alle Werte der Distance-Elemente aller City-Elemente liefert:
Java:
package com.company;
import org.jdom2.*;
import org.jdom2.input.SAXBuilder;
import java.io.IOException;
public class ReadXmlFile {
public static void main(String[] args) throws IOException, JDOMException {
SAXBuilder builder = new SAXBuilder();
Document jdomDoc = builder.build("StuttgartCity.xml"); //Bildet gesamtes XML im Speicher ab
Element root = jdomDoc.getRootElement();
for (int i = 0; i < root.getContentSize(); i++) {
Content content = root.getContent().get(i);
if (content instanceof Element) {
if ("München".equals(root.getChild("city").getAttributeValue("name"))) {
System.out.println(((Element) content).getChildText("distance"));
}
}
}
}
}
Wie kann ich mit jdom2 gezielt nur die Kindelemente mit einem bestimmten Attribut im Elternelement auslesen?
Gruß
Wambui