Article View: fr.comp.text.xml
Article #9239Re: XPath et la difficulté de son écriture.
From: Tom.
Date: Wed, 02 May 2001 20:36
Date: Wed, 02 May 2001 20:36
61 lines
3939 bytes
3939 bytes
In <iCPH6.1867$vt6.23868538@nnrp6.proxad.net>, Rapha�l THERY wrote: > Si j'ai bien compris > j'utilise dans un premier temps un axe descandant : child qui me permet de > pointer le noeud de travail > et ensuite, au sein de la m�me expression, je change d'orientation pour > pointer le pr�c�dant ou le suivant. Euh, oui. > Donc selon toute logique on ne peut trouver d'axes diff�rents dans un > "pr�dicat de recherche". !? Un chemin de localisation est composer d'�tapes de localisations, s�par�es par des / et totalement ind�pendantes les unes des autres. Une �tape est compos�e d'un axe et un test de noeud, et �ventuellement un ou plusieurs pr�dicats. Chaque �tape est �valu�e relativement � chaque noeud s�lectionn� par l'�tape pr�c�dente. Un pr�dicat peut contenir n'importe quelle expression. L'axe d�crit un sens de parcours � partir du noeud contextuel, chaque noeud sur cet axe est alors compar� au test de noeud. Si le test r�ussit, le noeud est "s�lectionn�" et ajout� � l'ensemble de noeud r�sultat. Relativement � chaque noeud s�lectionn� on �value alors les pr�dicats. Pour un noeud donn�, si le pr�dicat s'�value � faux ou � un nombre diff�rent de la position du noeud dans l'ensemble de noeuds s�lectionn�s, le noeud est retir� de cet ensemble. � la fin de ce traitement, on a un ensemble de noeuds s�lectionn�s par l'�tape de localisation. On �value ensuite l'�tape suivante en prenant comme noeud contextuel successivement chacun des noeuds pr�c�demment s�lectionn�s. Le r�sultat est l'union de tous ces ensembles de noeuds. Et ainsi de suite jusqu'� avoir �valu� le chemin complet. Une �tape de localisation s�lectionne des noeuds, elle permet donc de "se d�placer". Le pr�dicat donne des r�gles pr�cises pour s�lectionner ces noeuds. child::foo/preceding-sibling::bar/attribute::baz s�lectionne tous les sous-�l�ments foo du noeud contextuel puis pour chacun tous les noeuds bar qui le pr�c�dent (et qui ont le m�me �l�ment parent) et enfin leur attribut baz. Le r�sultat est donc un ensemble de noeuds d'attributs baz. child::foo[preceding-sibling::bar/attribute::baz] s�lectionne tous les sous-�l�ments foo du noeud courant pour lesquels l'�valuation du pr�dicat retourne un ensemble de noeud non vide. Le r�sultat est un ensemble de noeuds foo. Pour tenter de faire une analogie avec SQL, le test de noeud correspond � la clause SELECT et le pr�dicat � la clause WHERE. >> $Fichier/fils[@nature=1][@nom=current()/@nom]/preceding-sibling::fils[1]/ >> @Name >> ^^^ > > Concernant les lignes ci dessus pourquoi les "^^^" ? juste pour signaler la partie int�ressante de l'expression. Tom.
Technical Details
Message-ID:
<4330048.TlGXAFRqVo@ltgt.net>Path:
arc1-ca.pugleaf.net!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!193.251.151.101!opentransit.net!proxad.net!feeder2-1.proxad.net!nnrp4.proxad.net.POSTED!not-for-mailReferences:
<HobG6.253$Lw4.656473@nnrp4.proxad.net> <1135038.FpCBEx9A2H@ltgt.net> <iCPH6.1867$vt6.23868538@nnrp6.proxad.net>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,935aebe3b6637edb X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-05-02 13:36:13 PST Path: arc1-ca.pugleaf.net!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!193.251.151.101!opentransit.net!proxad.net!feeder2-1.proxad.net!nnrp4.proxad.net.POSTED!not-for-mail Message-ID: <4330048.TlGXAFRqVo@ltgt.net> From: Tom. <ptittom+news@free.fr> Subject: Re: XPath et la difficulté de son écriture. Newsgroups: fr.comp.text.xml References: <HobG6.253$Lw4.656473@nnrp4.proxad.net> <1135038.FpCBEx9A2H@ltgt.net> <iCPH6.1867$vt6.23868538@nnrp6.proxad.net> Lines: 61 Organization: </> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Date: Wed, 02 May 2001 20:36:11 GMT NNTP-Posting-Host: 193.252.183.129 X-Complaints-To: abuse@proxad.net X-Trace: nnrp4.proxad.net 988835771 193.252.183.129 (Wed, 02 May 2001 22:36:11 CEST) NNTP-Posting-Date: Wed, 02 May 2001 22:36:11 CEST