xsl-list
[Top] [All Lists]

RE: OR expr with node sets

2005-10-18 02:10:21
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
<Prev in Thread] Current Thread [Next in Thread>