Bonjour, J'ai le document XML suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
 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