RE: [xsl] conditionally accessing attribute value of the same node

Subject: RE: [xsl] conditionally accessing attribute value of the same node
From: "Michael Kay" <mhkay@xxxxxxxxxxxx>
Date: Thu, 28 Jun 2001 17:28:25 +0100
> In My XSL I check for action node for type = accept.If I get
> that action
> node then I want to access its taskid.But I am not able to
> access it.The
> code which is used for this actually gives me taskid for the
> other action
> node(first node of type soft1)
> XSLT code: This is part of <xsl:choose>
>
> 	<xsl:when test="//choice/action/@type[.='accept']">
> 		<xsl:value-of select="//choice/action/@imodetask" />
> 	</xsl:when>
>
This is saying "if there is an action with @type='accept' anywhere in the
document, then give me the value of the first action/@imodetask anywhere in
the document". By using "//", you are selecting relative to the root of the
document, not to the context node.

You want something like

<xsl:template match="action">
  <xsl:choose>
   <xsl:when test="@type='accept'">
     <xsl:value-of select="@imodetask"/>

Mike Kay
Software AG


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


Current Thread