RE: [xsl] xpath question

Subject: RE: [xsl] xpath question
From: Stuart Brown <sbrown@xxxxxxxxxxx>
Date: Thu, 27 Mar 2003 17:10:35 -0000
HI Florian,

You can use the local-name() function to solve this problem. It returns the
(unqualified) name of the context element. In these circumstances you would
usually select with a wildcard, and then use local-name() in a predicate to
filter it down. Something like:

<xsl:template match="column">
 <xsl:for-each select="/root/group/*[local-name()=current()/@name]">
  <!-- Do whatever -->
 </xsl:for-each>
</xsl:template>

The above selects the actual fruity element. If you want the <group> change
the xpath in the for-each to "/root/group[*[local-name()=current()/@name]]".

Cheers,

Stuart

> -----Original Message-----
> From: florian [mailto:csshsh@xxxxxxxxxxxxxxx]
> Sent: 27 March 2003 17:08
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] xpath question
> 
> 
> 
> hi!
> 
> i have a document xml doc like this:
> 
> <root>
>   <group>
>      <apple>bla</apple>
>      <orange>bla</orange>
>   </group>
>   <group>
>      <apple>bla</apple>
>      <orange>bla</orange>
>   </group>
> 
>   <order>
>     <column name="orange" />
>     <column name="apple" />
>   </order>
> </root>
> 
> i would like to do the following: im going though all the column nodes
> and would like to access the group nodes where the column 
> attribute name
> and the group node name match up.
> 
> basically i can just not think of a way to do that in xpath.. anybody
> got an tip? how can i say in xpath that it should get the node with
> the name in @name and not just access the name attribute of a group
> node..
> 
> thanks alot!
> 
> ciao!
> florian
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread