Subject: Re: [xsl] treating variables like nodes - testing for existence From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Mon, 1 May 2006 15:48:05 -0700 |
Result Tree Fragment is a fundamental concept in XSLT 1.0. Do read/search on this subject.
use: <xsl:with-param name="test" select="string($test)"/>
-- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence.
')"/></xsl:if>
>hi all, > >I am trying to write code that will treat a variable as a node. If >a variable is empty, I want the stylesheet to think it's >non-existent rather than existing, but empty. For example, I am >trying to parse out a string from element, foo. If the value exists, >I want it to print <test>value of foo</test>. If it doesn't exist, >I don't want it to print out anything. Right now, it still prints >out the tags because the variable exists but is empty at this point. >Is there any way to check for variable existence like one can with >nodes? So if the variable is empty after parsing out the element, I >want the stylesheet to think that there is no variable. The larger >issue is that we have templates that process nodes and print output >if they exist or if the nodes exist, but there is no value. There >are some nodes to which we do some processing or parsing where we >need variables(like with foo in the example below), when we pass >these variables to templates, I want these templates to treat these >variables like nodes. Thanks for your help! > > >stylesheet: ><xsl:stylesheet version="1.0" >xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >xmlns:fo="http://www.w3.org/1999/XSL/Format"> > ><xsl:template match="/"> ><xml> ><xsl:for-each select="//foo"> > <xsl:variable name="test"> > <xsl:if test="contains(.,'em')"> > <xsl:value-of select="substring-after(.,'em:
> </xsl:variable> > <xsl:call-template name="runTest"> > <xsl:with-param name="test" select="$test"/> > </xsl:call-template> ></xsl:for-each> ></xml> ></xsl:template> > ><xsl:template name="runTest"> > <xsl:param name="test"/> > > <xsl:if test="$test"> > <test> > <xsl:value-of select="$test"/> > </test> > </xsl:if> ></xsl:template> ></xsl:stylesheet> > >xml file: ><xml> ><foo>bar1</foo> ><foo>bar;em: bar2</foo> ></xml> > >This is the result I get: ><xml xmlns:fo="http://www.w3.org/1999/XSL/Format"> > <test /> > <test>bar2</test> ></xml> > > > >Esha Datta
>Los Alamos National Laboratory Research Library
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] treating variables like nodes, Esha Datta | Thread | Re: [xsl] treating variables like n, Esha Datta |
[xsl] treating variables like nodes, Esha Datta | Date | Re: [xsl] chekcing attribute exista, jd list |
Month |