I'm trying to capture a sequence of nodes in a variable. The
catch is that the nodes I capture can vary based on the
local-name() of the element matched by the template.
I've got:
<xsl:variable name="label-nodes">
<xsl:choose>
<xsl:when test="local-name() = 'shared'">
<xsl:value-of select="rm:label[$page-type =
tokenize(@pages, '\s*,\s*')]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="rm:label"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Instead, I want the sequence of rm:label elements selected by
the XPath expression in the xsl:value-of instruction's select
attribute. But how do I select a sequence?
Well, the minimum change is:
<xsl:variable name="label-nodes">
<xsl:choose>
<xsl:when test="local-name() = 'shared'">
<xsl:sequence select="rm:label[$page-type = tokenize(@pages,
'\s*,\s*')]"/>
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="rm:label"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
But I think I would write
<xsl:variable name="label-nodes"
select="rm:label[local-name(current()) ne 'shared' or $page-type =
tokenize(@pages, '\s*,\s*')]"/>
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--