SelectsingleNode avec deux correspondances ? [Résolu]

Signaler
Messages postés
4
Date d'inscription
jeudi 20 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010
-
Messages postés
4
Date d'inscription
jeudi 20 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010
-
MON FICHIER XML
<mapping>
<libelleMapping>coucou1</libelleMapping>
<typeMapping>1</typeMapping>

<contrats>
<contrat>
16

<societe>1</societe>
<dfv>2009-08-16T00:00:00</dfv>
<ddv>2008-08-17T00:00:00</ddv>
</contrat>
</contrats>
</mapping>
<mapping>
<libelleMapping>coucou2</libelleMapping>
<typeMapping>2</typeMapping>


401

<dfv>2009-08-18T00:00:00</dfv>




<contrats>
<contrat>
16

<societe>2</societe>
<dfv>2009-08-17T00:00:00</dfv>
<ddv>2008-08-18T00:00:00</ddv>
<ligne1>2</ligne1>
<ligne2>3</ligne2>
12
13
14
<zone1>2</zone1>
<zone2>3</zone2>
</contrat>
</contrats>
</mapping>

J'aimerai etre capable de récupérer mon <mapping></mapping> en fonction du profilcode ET du contratcode.
C'est à dire que si je recherche un mapping avec un profilcode à 401 ET un productcode à 16 alors je dois avoir le mapping n°2 de disponible; Comment faire pour avoir une SelectSingleNode avec DEUX correspondance dedans ?

// récupération des contrats
oXmlNodeMappingContracts = oXmlDocumentProducts.SelectSingleNode("//" + NODE_MAPPING + "[" + NODE_MAPPING_CONTRACTS + "/" + NODE_MAPPING_CONTRACT + "/" + NODE_MAPPING_CONTRACT_CODE + "='" + szProductCode + "']");

3 réponses

Messages postés
4
Date d'inscription
jeudi 20 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010

bon voila la réponse, le xPathExpression peut s'écrire comme ca et me permet de vérifier à la fois le code contrat et le code profil

oXmlDocumentProducts.SelectNodes("//mapping[contrats/contrat/code='" + szProductCode + "'][ profils/profil/code ='" + szProfilCode + "']");


Résolu
Messages postés
4
Date d'inscription
jeudi 20 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010

En gros, la question peut etre formuler comme ca :

Est ce que dans un System.Xml.XPath on peut avoir plusieurs correspondances ?
Messages postés
4
Date d'inscription
jeudi 20 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010

QQchose que devrais ressembler de près ou de loin à ca non ?

oXmlDocumentProducts.SelectSingleNode("//mapping[contrats/contrat/code='16' && profils/profil/code='401']");
OU
oXmlDocumentProducts.SelectSingleNode("//mapping[@contrats/contrat/code='16' && @profils/profil/code='401']");