[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] OR expr with node sets


Subject: RE: [xsl] OR expr with node sets
From: <Jarno.Elovirta@xxxxxxxxx>
Date: Tue, 18 Oct 2005 12:10:21 +0300

Hi,

> i want do something if node
> dok/zonen/textsuche/jpk/jpk-titel/div/normfassungen exists 
>                  or if node
> dok/notindexed/jpk/jpk-titel/div/normfassungen exists
> 
> But the following xsl:if
> <xsl:if test="dok/zonen/textsuche/jpk/jpk-titel/div/normfassungen |
> dok/notindexed/jpk/jpk-titel/div/normfassungen">
> 
> produces
> 	java.lang.StringIndexOutOfBoundsException: String index out of
> range: -6
> using XALAN 2.6.0
> 
> What is wrong with the above "or" expr?

The above uses an union expression, not an or expression. There's a difference.

  <xsl:if test="foo | bar">

collects two node-sets, creates an union and then casts the combined node-set to a boolean.

  <xsl:if test="foo or bar">

collects two node-sets, casts both of them into booleans and then makes an OR comparison between the resulting booleans.

The above should work, you might have stumbled on to a Xalan bug. 

Cheers,

Jarno

--
Perverted Science http://www.nuenergy.co.uk


Current Thread