Bonjour,
à vue de nez, je pense que c'est parce que vos critères sont testés
qu'ils appartiennent ou non au même noeud.
J'essaierai plutôt qque chose comme cela :
//personne[@diffusion = 'public']/mandats/mandat[@fin='' and
@type='elu']/../..
ou
//mandats/mandat[@fin='' and @type='elu']/../personne[@diffusion =
'public']/
Jean-Christophe
Jean-Marie Hoornaert a écrit :
> Bonjour,
>
>
> J'ai un problème d'XPath sur lequel je me casse les dents.
>
> Voici un extrait de l'xml :
>
> <repertoire>
> <personne ID="P0001" diffusion="public">
> <nom>Dupont</nom>
> <prenom>Jean</prenom>
> <mandats>
> <mandat diffusion="public" type="elu"
> debut="2004" fin="">Maire</mandat>
> <mandat diffusion="public" type="elu"
> debut="1999" fin="2004">Adjoint au Maire</mandat>
> </mandats>
> </personne>
> <personne ID="P0002" diffusion="public">
> <nom>Durant</nom>
> <prenom>Martin</prenom>
> <mandats>
> <mandat diffusion="public" type="engagement"
> debut="2004" fin="">Secrétaire de direction</mandat>
> <mandat diffusion="public" type="elu"
> debut="1999" fin="2004">Adjoint au Maire</mandat>
> </mandats>
> </personne>
> <personne ID="P0003" diffusion="public">
> <nom>Sylvestre</nom>
> <prenom>Cecile</prenom>
> <mandats>
> <mandat diffusion="public" type="elu"
> debut="2004" fin="">Conseillère communale</mandat>
> <mandat diffusion="public" type="elu"
> debut="1999" fin="2004">Conseillère communale</mandat>
> </mandats>
> </personne>
> </repertoire>
>
> Je voudrais obtenir toutes les personnes dont je peux publier les
> informations (diffusion = "public") et qui ont un mandat de type
> "elu" en cours (donc où fin est vide).
>
> L'XPath :
>
> "//personne[@diffusion='public' and
> mandats/mandat/@diffusion='public' and
> mandats/mandat@diffusion='public' and
> mandats/mandat/@fin='' and
> mandats/mandat/@type='elu']"
>
> Et je tourne cela dans tout les sens, mais à chaque fois "Durant",
> dont le mandat d'élu a expiré en 2004, fait parti de la liste.
>
> Merci de m'aider.
--
Jean-Christophe Kermagoret
jck@BabelObjects.Com
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Wed Jul 20 19:10:11 2005