xsl-list
[Top] [All Lists]

RE: xpath question

2003-03-27 10:10:35
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(_at_)structbench(_dot_)com]
Sent: 27 March 2003 17:08
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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



<Prev in Thread] Current Thread [Next in Thread>