Parcourir un Document XML avec DOM
Bonjour, J'ai le document XML suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <Dimensions>
<Dimension name="Time" refD="ID-T">
<Aggregation_level>
<level> second </level>
<level> Minute </level>
<level> Hour </level>
<level> Day </level>
<level> Month </level>
<level> Year </level>
</Aggregation_level>
</Dimension>
<Dimension name="Place" refD="ID-PL">
<aggregation_level>
<level> Place_type </level>
</aggregation_level>
<aggregation_level>
<level> Country-code </level>
<level_attribute>country</level_attribute>
</aggregation_level>
<Attributes>
<Attribute>Full_Name</Attribute>
<Attribute>Name</Attribute>
<Attribute>URL_PL</Attribute>
</Attributes>
</Dimension>
</Dimensions> |
Je veux parcourir ce document tout en affichant tous ces éléments et ces sous-éléments, j'ai utilisé le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| NodeList nodes = document.getElementsByTagName("Dimensions");
// extract liste des dimensions
Element element = (Element) nodes.item(0);
NodeList dimensionList = element.getElementsByTagName("Dimension");
for (int i = 0; i < dimensionList.getLength(); i++) {
Element dimensionElement = (Element) dimensionList.item(i);
System.out.println(dimensionElement.getAttributes().getNamedItem("name").getNodeValue());
NodeList levels = dimensionElement.getElementsByTagName("Aggregation_level");
NodeList attributs = dimensionElement.getElementsByTagName("Attributes");
Element level = (Element)levels.item(0);
Element attribute = (Element) attributs.item(0);
System.out.println("verification1");
while(level.getNodeType() == Node.ELEMENT_NODE && level.hasChildNodes()) {
for(int j=0; j< level.getChildNodes().getLength(); j++){
System.out.println(level.getElementsByTagName("level").item(j).getTextContent());
}
}
while(attribute.getNodeType() == Node.ELEMENT_NODE && attribute.hasChildNodes()) {
for(int j1=0; j1< attribute.getChildNodes().getLength(); j1++){
System.out.println(attribute.getElementsByTagName("Attribute").item(j1).getTextContent());
}
}} |
J'ai comme résultat:
Code:
Time\n second \n Minute \nHour \nDay \nMonth \nYear Exception in thread "main" java.lang.NullPointerException at ParsingJson.main(ParsingJson.java:45)
où je mon programme ne peux pas avancer pour parcourir le deuxième élément