Subject: Re: Saxon Error: Conditional Transformation Matches BOTH of "Either/Or" Template
From: Andrew Welch <andrew.j.welch@xxxxxxxxx>
Date: Thu, 6 Jun 2013 13:16:04 +0100
|
> First, "Thanks" again for your kind input.
np
> Using: match="para[not(@selectout) or contains(@selectout, 'html')]" does not work because the "contains(@selectout, 'html')" clause returns a boolean and not a node().
>
That doesn't really make sense... all predicates evaluate to a true/false.
> Creating two templates simplified everything and now all is well:
>
> <xsl:template match="para[@selectout]">
> <xsl:if test="contains(@selectout, 'html')">
> ...
> </xsl:if>
>
> <xsl:if test="not(contains(@selectout, 'html'))">
> <!-- do nothing -->
> </xsl:if>
> </xsl:template>
>
>
> <xsl:template match="para[not(@selectout)]">
> ...
> </xsl:template>
Ah ok, did you originally have:
match="para[@selectout]"
and
match="para[not(@selectout)] | para[contains(@selectout, 'html')]"
...in which case you can see where the match conflict would come from.
--
Andrew Welch
http://andrewjwelch.com
|