logo       

Re: Récupérer la position d'un noeud parmi ses "sibling": msg#00185

text.xml.french.tech

Subject: Re: Récupérer la position d'un noeud parmi ses "sibling"

Merci bien pour cette solution.
Par contre, il semblerait que ni jaxen ni l'implémentation Xpath de dotnet
ne permette d'utiliser cette fonction "count()" dans une requête sur un DOM
(pas d'utilisation de feuille de style XSL).

Cldt,
Jean-Guillaume

-----Message d'origine-----
De : xml-tech-bounce@xxxxxxxxx [mailto:xml-tech-bounce@xxxxxxxxx] De la part
de Sylvain Wallez
Envoyé : lundi 20 décembre 2004 15:15
À : xml-tech@xxxxxxxxx
Objet : [xml-tech] Re: Récupérer la position d'un noeud parmi ses "sibling"

Jean Guillaume LALANNE wrote:

>Bonjour,
>
>J'essaie de récupérer la position d'un noeud parmi ses siblings mais je n'y
>arrive pas. J'ai l'habitude d'utiliser la fonction position() dans des
>conditions mais jamais auparavant je n'ai eu à l'utiliser pour récupérer la
>position d'un noeud. Exemple :
>
>//MOUVEMENT[ ( (STATUS='XOF') or (STATUS='XRX') ) and (not
>(starts-with(POINT_LOCATION,'FRDKK'))) ]/../../position() ne fonctionne pas
>
>et
>
>position( //MOUVEMENT[ ( (STATUS='XOF') or (STATUS='XRX') ) and (not
>(starts-with(POINT_LOCATION,'FRDKK'))) ]/../.. ) ne fonctionne pas non plus
>dans cooktop.
>
>est ce que qulequ'un a déjà effectué ce genre de requête XPATH ?
>
>

count(//MOUVEMENT[ ... expression compliquée ... ]/preceding-sibling::*) ?

Au passage, attention au "//" qui peut être très coûteux si le document
est gros. Si l'élément cherché n'est pas à un niveau arbitraire de du
document, par ex toujours à 3 niveaux en dessous de la racine, il vaut
mieux utiliser /*/*/*/MOUVEMENT, en précisant si possible le nom des
éléments intermédiaires.

Sylvain

--
Sylvain Wallez Anyware Technologies
http://www.apache.org/~sylvain http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "xml-tech@xxxxxxxxx" (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@xxxxxxxxx
(mailto:xml-tech-request@xxxxxxxxx?Subject=unsubscribe)





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise