Subject: [xsl] Conditional XSL Variable From: raulvk <raulvk.soa@xxxxxxxxx> Date: Thu, 20 Nov 2008 19:45:34 +0000 |
Hi everyone, I am using XSLT 2.0 to transform from one XML document to another. I have defined a lookup table embedded in an XSL variable, which is used within the template and is defined as a global variable similar to the following: <xsl:variable name="lookupTable"> <map:table> <map:entry codeA="90434" codeB="9801" codeC="0121" /> <map:entry codeA="90437" codeB="1800" codeC="1212" /> <map:otherwise codeB="9800" codeC="9999" /> </map:table> </xsl:variable> Functionally, this table will be looked up based on codeA, and the corresponding values of codeB and codeC will be inserted in different elements within the resulting XML document. However, if the received value does not match any of the specified codeA values, the "otherwise" node should be used instead. I have created a variable that will store the node that will be used to obtain the codeB and codeC variables. <xsl:variable name="mappingsCodeA"> <xsl:choose> <xsl:when test="count($lookupTable/map:table/map:entry[@codeA=$valueOfCodeA]) = 1"> <xsl:value-of select="$lookupTable/map:table/map:entry[@codeA=$valueOfCodeA]" /> </xsl:when> <xsl:otherwise> <xsl:value-of select="$lookupTable/map:table/map:otherwise"/> </xsl:otherwise> </xsl:choose> </xsl:variable> (where $valueOfCodeA is a variable that has the value that has to be looked up). However, I am finding that the variable $mappingsCodeA never contains anything. I think it has something to do with the type of the variable, because it is not initialised as a result-tree fragment. Has anyone come across this problem before? By the way, I am using Saxon-B 9.1.0.3. Thanks!
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Issue with large XML doc , Michael Kay | Thread | [xsl] Re: Conditional XSL Variable, raulvk |
Re: [xsl] Scope of uniqueness of ge, John Snelson | Date | [xsl] Re: Conditional XSL Variable, raulvk |
Month |