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: variable as select for template


> > > 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


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