This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: variable as select for template
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] variable as select for template
- From: Jörg Heinicke <Joerg dot Heinicke at gmx dot de>
- Date: Wed, 19 Sep 2001 17:42:22 +0200 (MEST)
- References: <07D07AD1C8CAD4119B0900D0B7E7E8E0649AB9@uhura.memiq.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
> > > I'd like to make it with <xsl:value-of...> or something else
> > > because i have
> > > to decide on the fly which node set i need. My thought was
> > > may be i can use
> > > document() function here???
> >
> > I think you need to explain what you're trying to achieve.
> > Your solution
> > isn't going to work, because xsl:value-of produces text as
> > its result, not a
> > node-set.
> >
> > Mike Kay
>
> That was my try (it's a fragment):
>
> <xsl:variable name="parent_comp"> <!-- I wanted to get a node set in
> variable -->
> <xsl:choose>
> <xsl:when test="$comp_id=''"> <!-- the node set depends on a
> condition
> -->
> <xsl:value-of select="component[@class=$comp_class and not(@id)]"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="component[@class=$comp_class and
> @id=$comp_id]"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> then i could use variable $parent_comp just as node set here and in other
> places in stylesheet:
> <xsl:apply-templates mode="extract_property" select="$parent_comp">
>
> If <xsl:value-of select"..."/> always get text() as result, are there any
> solutions???
>
> thanks for advise
>
> Dmitri
A solution would be <xsl:copy-of select="component[condition]"/> instead of
you <xsl:value-of select=""/>.
Problem: You have now stored a ResultTreeFragment in your variable. For
changing the RTF into a nodeset you need an extension like msxsl:node-set() or
xalan:nodeset().
Joerg
--
GMX - Die Kommunikationsplattform im Internet.
http://www.gmx.net
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list