logo       

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

text.xml.french.tech

Subject: 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 }




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

News | FAQ | advertise