Subject: [xsl] Union of two node-sets not producing desired result (probable easy question ;-)) From: "Joel Beach" <joelbeach@xxxxxxxxxxxxxxxx> Date: Sat, 15 Sep 2001 01:02:16 +1000 |
Can anyone elighten me as to why the union of two sets shown below (marked with ^^^^^) results in a node-set of only two elements? Both node sets are produced by the tokenize() extension function.......one is a fixed string for now 'Multiple'. The other is a node set generated from a text node in an XML document.... The node sets generated by tokenize() seem to be fine, as I can use xsl:for-each to loop through the node-set and print all the elements out. It all looks good....The relevant fragment of the XML is shown below <Trial> <TrialName>Do Multiple Trials work</TrialName> </Trial> And the template contained in the XSL stylesheet is shown below.....clearly the Union of { 'Do', 'Multiple', 'Trials', 'Work' } and { 'Multiple' } should be give a count of 4, yet I get a count of 2, and the elements contained in the union are 'Do' and 'Multiple'. I feel stupid, but I can't find the problem in my code, given that I'm pretty much a complete beginner at XSL. On another note, what's the best way to case-insensitive unions? Convert strings to upper case first? Is the best way to do this to use translate and use variables which include all the characters in the alphabet? Thank, Joel <xsl:template match="Trial"> <xsl:variable name="trialNameWords" elect="xalan:tokenize( TrialName[text()], '- ' )"/> <xsl:variable name="trialSearchWords" elect="xalan:tokenize( 'Multiple', '- ' )"/> <xsl:if test="$trialSearchWords = $trialNameWords"> <xsl:text>We have a Match!!!!!</xsl:text> </xsl:if> <br/> <xsl:value-of select="count( $trialSearchWords | $trialNameWords )"/> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <br/> <xsl:for-each select="$trialSearchWords"> <xsl:value-of select="."/>, </xsl:for-each> <br/> Number of elements in trialSearchWords: <xsl:value-of select="count( $trialSearchWords )"/> <br/> <xsl:for-each select="$trialNameWords"> <xsl:value-of select="."/>, </xsl:for-each> <br/> Number of elements in trialNameWords: <xsl:value-of select="count( $trialNameWords )"/> <br/> </xsl:template> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] why this stylesheet doesn, Jeni Tennison | Thread | [no subject], Jagadish_Pasunuri |
Re: [xsl] XSL Javascript prob, Thomas B. Passin | Date | [no subject], Jagadish_Pasunuri |
Month |