J'appele une fonction dans un while de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
while (!node2Name.equals(attrNodeK)) {
	System.out.println("WHILE");
    node2 = browseShapeChildsForBifs(shapeNodeList, attrNodeK);
    System.out.println("node2 "+node2);
    if (node2 != null) {
    	node2Name = node2.getNodeName();
       	System.out.println("LE VRAI node2 QUI EST PAS NUL "+node2);
    }
}
Voici à quoi ressemble ma fonction browseShapeChildsForBifs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
private Node browseShapeChildsForBifs(NodeList shapeNodeList, String attrNodeName) {
	Node result = null;
	for (int i=0; i<shapeNodeList.getLength(); i++) {
        	Node node = shapeNodeList.item(i);
	        if (node.hasChildNodes()) {
	       		NodeList newShapeNodeList = node.getChildNodes();
	       		browseShapeChildsForBifs(newShapeNodeList, attrNodeName);
	       	}
	        if (shapeNodeList.item(i).getNodeName().equals(attrNodeName)) result = shapeNodeList.item(i);
		}
   	if (result!=null) System.out.println("RESULT "+result);
	return result;
}
Et voici le résultat qui boucle sans cesse :

WHILE
RESULT [Material2D: null]
node2 null
WHILE
RESULT [Material2D: null]
node2 null
Et maintenant la question qui est tout à fait logique si vous avez suivi jusqu'ici :

=> Pourquoi est-ce que le "return" de ma fonction est censé renvoyer un élément de type "Node" s'appelant "Material2D" et que le "node2" que je récupère reste "null" ??