XML et XPath

[Résolu]
Signaler
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009
-
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009
-
Bonjour,

ma question porte sur xml et xpathnavigator. j'ai un flux xml dont voici la forme suivante:

<RESULTAT>

    <node>

        <DATE_ANNE>2000</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC120</NOM>

    </node>

    <node>

        <DATE_ANNE>2000</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC121</NOM>

    </node>

    <node>

        <DATE_ANNE>2000</MVT_DATE>

        <TYPE>T</TYPE>

        <NOM>EPAC122</NOM>

    </node>

    <node>

        <DATE_ANNE>2001</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC123</NOM>

    </node>

    <node>

        <DATE_ANNE>2001</MVT_DATE>

        <TYPE>O</TYPE>

        <NOM>EPAC124</NOM>

    </node>

    <node>

        <DATE_ANNE>2002</MVT_DATE>

        <TYPE>P</TYPE>

        <NOM>EPAC125</NOM>

    </node>

    <node>

        <DATE_ANNE>2002</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC126</NOM>

    </node>

    <node>

        <DATE_ANNE>2002</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC127</NOM>

    </node>

<RESULTAT>

je veux séléctionner tous les noeuds de l'anné 2000 et qui ont pour
type I j'ai lu dans article qu'on pouvait faire la séléction suivante

    string xPathquery="/RESULTAT/node/DATE_ANNE='2006' AND TYPE='I'";

    XmlNodeList nodeList = doc.SelectNodes(xpathQuery);

je veux avoir une liste de cette forme

<RESULTAT>

    <node>

        <DATE_ANNE>2000</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC120</NOM>

    </node>

    <node>

        <DATE_ANNE>2000</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC121</NOM>

    </node>

    <node>

        <DATE_ANNE>2001</MVT_DATE>

        <TYPE>I</TYPE>

        <NOM>EPAC123</NOM>

    </node>

..............


mais ça ne marche pas est ce qu'on peut m'expliquer si c'est possible
de faire ce genre de requete en xPath et comment ça fontionne?

Merci d'avance.

blueangel13

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Ben dans le code que tu as copié en haut, je regrette mais le fichier n'est pas (du tout) valide.
Pour la requête XPath, elle devrait plutôt ressembler à quelque chose comme ceci :

string xPathquery =
"RESULTAT/node[(DATE_ANNE=2000) and (TYPE='I')]";

Ha oui, tant que j'y suis, année s'écrit avec deux 'e'...

<hr size="2" />VC# forever
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Salut,
Ca vient peut-être du fait que ton fichier xml n'est pas valide : la balise <RESULTAT> n'est pas fermée et toutes les balises DATE_ANNE sont fermées avec </MVT_DATE>

<hr size="2" />VC# forever
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009

si le flux est correcte

 <RESULTAT>

<NODE>

...

<DATE_ANNE>2000</DATE_ANNE>

...

<NODE>

</RESULTAT>
quand je charge le flux dans un document xml ça marche mais c'est la sélétion avec des critére qui ne marche pas.

le but est en faite de faire un requete sur un flux XML!!
blueangel13
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009

merci ça marche !!
blueangel13