[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Union of two node-sets not producing desired result (p

Subject: 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
union of sets
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.