Re: An Invalid xpath expression xsl:template/@match node is ignored

Nick Wellnhofer <[email protected]> Tue, 31 Jul 2012 21:48:04 +0200
Newsgroups gmane.comp.gnome.lib.xslt
Message-ID <[email protected]>
On 31/07/2012 20:28, Nicolas Delaby wrote:
> Hi Nick,
> Thanks for your answer
> I see the point.
>
> But if I change a bit my stylesheet to put the invalid xpath expression
> in a xsl:apply-templates/@select , it does try to continue the
> transformation.
>
> [...]
> <xsl:apply-templates select="sub_node1||sub_node2" />
> [...]
>
> $ xsltproc xpath-typo.xsl document.xml
> XPath error : Invalid expression
> sub_node1||sub_node2
>            ^
> compilation error: file xpath-typo.xsl line 6 element apply-templates
> XSLT-apply-templates: could not compile select expression
> 'sub_node1||sub_node2'
> error: file xpath-typo.xsl line 10 element template
> xsltCompilePattern : NULL pattern
>
> Why it stops here ?
> I guess the compiler can not recover from this error, so it doesn't have
> other choice than stopping. But may be there is another explanation ?

Yes, in this case the invalid expression is actually evaluated.

> IMHO, I do not like this strategy to recover from errors automatically.
>
> Apart from my personal opinion :), the only way to know if something
> goes wrong is to read stderr right ? Or is there is something more
> explicit ?

I agree that it would be more user-friendly to abort the transformation 
if an invalid expression is encountered anywhere in the stylesheet. But 
this is more of a wishlist item than a real bug. Feel free to file a 
report on bugzilla.gnome.org.

Nick