Subject: [xsl] Solved - expected ) exception From: elizabeth Hostetter <aellath@xxxxxxxxxxxxx> Date: Fri, 30 Sep 2011 06:14:35 -0700 |
In the first <xsl:when>, you need a slash (/) between "." and "DisplayPrice". Because those two items together without a slash between are not a valid XPath "sub-expression", which is what the parser would expect to find between the parenthesis of a function call, the parser assumes that the sub-expression must end after the ".", so it "expects" the closing ")".
-Brandon :)
An XML name cannot begin with ".". So after
number(.
the only things that can legally come next are either ")", or an operator such as "+", "div", or "/".
It's not a good message. Sometimes when you get a poor error message,
it's worth trying another XSLT processor to see if it gives you a better
one. Saxon on this one gives you:
Error at xsl:when on line 24 column 67 of test.xsl: XPST0003 XPath syntax error at char 9 on line 24 in {(number(.DisplayPrice)}: expected ")", found name "DisplayPrice"
The "expected ')'" when there are many other symbols that could occur is
symptomatic of a top-down parser, which typically only reports what it
was expecting as a 'last resort'. A bottom-up parser that builds a
finite-state machine would know all the possible symbols that could
validly occur in this context.
Michael Kay Saxonica
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] () eq () vs () = (), Markus Abt | Thread | [xsl] XPath questions: selecting fr, Mark |
Re: [xsl] () eq () vs () = (), David Carlisle | Date | Re: [xsl] () eq () vs () = (), Markus Abt |
Month |