RE: [xsl] Grouping text nodes

Subject: RE: [xsl] Grouping text nodes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 4 Aug 2005 18:03:32 +0100
You could also write this as

*[span/@class='vn']

Some people might find that more intuitive (though I'm not sure why).

Michael Kay
http://www.saxonica.com/

 

> -----Original Message-----
> From: Jacoby, Peter R. [mailto:PJACOBY@xxxxxxxxxxxx] 
> Sent: 04 August 2005 17:13
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] Grouping text nodes
> 
> >> > <xsl:template match="*[span[@class='vn']]" mode="lg">
> >>
> >>What are the extra [ ] doing in this case? 
> 
> I've found that understanding XPath statements is easiest if 
> you try to turn it
> into English (or your favorite spoken language) going left-to-right.
> 
> So, match="*" means match on any node
>  
> *[...] means match on any node where the ... evaluates to true
> 
> *[span] means match on any node where it is true that it has 
> a child named span
> 
> *[span[...]] means match on any node where it is true that is 
> has a child named
> span and for which the ... evaluates to true for that span child
> 
> *[span[@class='vn']] means match on any node where it is true 
> that is has a
> child named span and that span child has an attribute named 
> class whose text
> value is equal to the string "vn"
> 
> I know this was probably more verbose than you needed, but 
> this is the concept
> of breaking down XPath into its various parts that has helped 
> me learn it.
> 
> Hope this helps.
> 
> -Peter

Current Thread