Salut a tous, voilà j'ai un petit pb de recherche Xpath. Si quelqu'un pouvait m'aider ce serait sympas.
Voici un bout de mon code XML
Voilà ! Ce que je cherche afaire c retrouver tout les noeud PRODUCT qui ont un ID_MARQUE égal à 185 par exemple.
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
27
28
29
30
31
32
33
34
35
36 <PRODUCTS> ... <PRODUCT> ... <TYPEACCESSOIRES> <ID_TYPEACCESOIRE><![CDATA[121]]></ID_TYPEACCESOIRE> </TYPEACCESSOIRES> <MARQUES> <ID_MARQUE id="185">185</ID_MARQUE> <ID_MARQUE id="189">189</ID_MARQUE> <ID_MARQUE id="184">184</ID_MARQUE> <ID_MARQUE id="201">201</ID_MARQUE> <ID_MARQUE id="186">186</ID_MARQUE> <ID_MARQUE id="187">187</ID_MARQUE> </MARQUES> ... </PRODUCT> <PRODUCT> ... <TYPEACCESSOIRES> <ID_TYPEACCESOIRE><![CDATA[121]]></ID_TYPEACCESOIRE> </TYPEACCESSOIRES> <MARQUES> <ID_MARQUE id="190">190</ID_MARQUE> <ID_MARQUE id="185">185</ID_MARQUE> <ID_MARQUE id="189">189</ID_MARQUE> <ID_MARQUE id="184">184</ID_MARQUE> <ID_MARQUE id="201">201</ID_MARQUE> <ID_MARQUE id="186">186</ID_MARQUE> <ID_MARQUE id="187">187</ID_MARQUE> </MARQUES> ... </PRODUCT> ... </PRODUCTS>
J'ai donc fait un truc de ce genre :
ça marche , mais a moitié ! Dans mon flux XML j'ai au total, 26 balise PRODUCT avec un ID_MARQUE=185 et le chemin que j'ai mis ne m'en retourne que 17. J'ai rechercher qu'elle était c'est noeud, apparemment, c les 17 noeud PRODUCT qui aurait la premiere balilse ID_MARQUE = à 185.xNode = mx.xpath.XPathAPI.selectNodeList(_root.document.firstChild, "*/PRODUCTS/PRODUCT/*[ID_MARQUE='185']");
Comment faire pour tout les lister.
J'ai essayer en mettant un attribut de meme valeur avec cette requette :
Là ça marche, j'ai bien mais 26 balises PRODUCT.ssongletNode = mx.xpath.XPathAPI.selectNodeList(_root.document.firstChild, "*/PRODUCTS/PRODUCT/*/*[@id=185]");
Mais je suis un peu buté et je veux comprendre pourquoi je n'arrive pas a trouver 26 noeuds PRODUCT en faisant une recherche sur la valeur du noeud alors que sur l'attribut ça marche.
Je me trompe peut-être dans le chemin !
Partager