This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Converting a string to node test



> Do you know the secret?
this is a FAQ I think.

>   <xsl:copy-of select="$x[@$y=$z]/node()"/>

@$y doesn't mean anything as you observed.

If $y is a string with a name of an attribute then you can go
  <xsl:copy-of select="$x[@*[name()=$y and .=$z]]/node()"/>
but usually it's more fun to pass in the node you want rather than 
mess with names. Variables in XSLT are not restricted to strings
so you can pass nodes around.
You didn't show how you were calling your template but rather than pass
<xsl:with-param name="x" select="foo"/>
<xsl:with-param name="y" select="'attr'"/>

you may be able to do

<xsl:with-param name="x" select="foo"/>
<xsl:with-param name="y" select="foo[@attr']/>
 in which case your template just needs to replace

  <xsl:copy-of select="$x[@*[name()=$y and .=$z]]/node()"/>

by


  <xsl:copy-of select="$y/node()"/>

David

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]