Subject: [xsl] building of a variable which contains nodes From: Stephane.Le-Deaut@xxxxxxxxxx Date: Mon, 3 Dec 2001 15:04:25 +0100 |
Hello, I would like to create a variable which contains nodes. The node comes from the newReferenceAuthentifiedPackageDescriptorFile file or the currentAuthentifiedPackageDescriptorFile file. If i use <xsl:if> element my code is like this : <xsl:if test="$buildingType='EXCEPTION_PROCEDURE' "> <xsl:variable name="ListOfServiceDescriptor" select="$currentAuthentifiedPackageDescriptorFile //Subset[normalize-space(@serviceName)!='' and .//SingleElement/@isVersionned='YES']"/> <xsl:call-template name="makeRootDescriptor"> <xsl:with-param name="listOfServiceDescriptor" select="$ListOfServiceDescriptor"/> </xsl:call-template> </xsl:if> <xsl:if test="$buildingType='STANDARD' "> <xsl:variable name="ListOfServiceDescriptor" select="$newReferenceAuthentifiedPackageDescriptorFile //Subset[contains($servicesDescriptor,@serviceName)]"/> <xsl:call-template name="makeRootDescriptor"> <xsl:with-param name="listOfServiceDescriptor" select="$ListOfServiceDescriptor"/> </xsl:call-template> </xsl:if> This program works fine, but I don't want to duplicate the call of the makeRootDescriptor template. I want to call this template once. So I'm trying to solve my problem by using <xsl:choose> element like this <xsl:variable name="ListOfServiceDescriptor"> <xsl:choose> <xsl:when test="$buildingType='EXCEPTION_PROCEDURE' "> <xsl:value-of select="$newReferenceAuthentifiedPackageDescriptorFile //Subset[contains($servicesDescriptor,@serviceName)]"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$currentAuthentifiedPackageDescriptorFile//Subset[normalize-space(@serviceName)!='' and .//SingleElement/@isVersionned='YES']"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="makeRootDescriptor"> <xsl:with-param name="listOfServiceDescriptor" select="$ListOfServiceDescriptor"/> </xsl:call-template> But it doesn't work because <xsl:value-of> element returns a string value, so I got this message : XPATH: Can not convert #RTREEFRAG to a NodeList! Does there exist another approach ? Is the <xsl:if> element is the only solution ? Thanks for your help. Stéphane XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Default template match, Jeni Tennison | Thread | Re: [xsl] building of a variable wh, David Carlisle |
RE: [xsl] fo:external-graphic, DPawson | Date | [xsl] Newbie question - grouping an, Sai N |
Month |