🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #9239

Re: XPath et la difficulté de son écriture.

#9239
From: Tom.
Date: Wed, 02 May 2001 20:36
61 lines
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-mail
References: <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