J'ai besoin de choper la valeur de <item_id> du noeud <item> qui contient un <element_id> spécifique. Voici comment j'ai essayé à l'aide de la librarie XPATH4AS2 :
Si je déclare la valeur de elemId à "00" (la valeur du <element_id> du premier noeud <element> ), ça fonctionne bien, j'obtiens la valeur 0 pour <item_id>. Mais si je déclare elemId à "01" (l'<element_id> du deuxième <element> ), ça bug, je n'obtiens rien en retour, pourtant le deuxième noeud <element> est bien un descendant du noeud <item> ! On dirait que XPath est comme bloqué au fond du premier noeud <element> et n'analyse pas l'ensemble des descendants. Il scan seulement la première "branche". Avez-vous déja eu ce genre de problème, avez-vous des idées à ce sujet ? Merci beaucoup !
Marsh Posté le 19-01-2007 à 11:48:37
Bonjour à tous,
J'ai un fichier xml qui ressemble à ça :
<root>
<item>
<item_id>0</item_id>
<element>
<element_id>00</element_id>
<element_name>first</element_name>
</element>
<element>
<element_id>01</element_id>
<element_name>second</element_name>
</element>
</item>
</root>
J'ai besoin de choper la valeur de <item_id> du noeud <item> qui contient un <element_id> spécifique.
Voici comment j'ai essayé à l'aide de la librarie XPATH4AS2 :
elemId="00";
myItemId=XPath.selectNodesAsString(myXML, "/root/item[descendant::element_id='"+elemId+"']/item_id/text()" );
Si je déclare la valeur de elemId à "00" (la valeur du <element_id> du premier noeud <element> ), ça fonctionne bien, j'obtiens la valeur 0 pour <item_id>. Mais si je déclare elemId à "01" (l'<element_id> du deuxième <element> ), ça bug, je n'obtiens rien en retour, pourtant le deuxième noeud <element> est bien un descendant du noeud <item> ! On dirait que XPath est comme bloqué au fond du premier noeud <element> et n'analyse pas l'ensemble des descendants. Il scan seulement la première "branche". Avez-vous déja eu ce genre de problème, avez-vous des idées à ce sujet ? Merci beaucoup !
Greg
--
www.dankastudio.fr
Message édité par premotif le 19-01-2007 à 11:53:02