You sent your bug report to the wrong address. We don't use 
javax.xml.xpath.* or org.w3c.dom.* in any of our products. We don't know 
anything about demo.hw.client.XPathTest.



---
PS:
---
if (/blah/text()!='') then blah/text() else ''
---
is XPath *2.0* (http://www.w3.org/TR/xpath20/) and not XPath *1.0* 
(http://www.w3.org/TR/xpath).

You'll have very hard times having javax.xml.xpath.XPath parse this kind 
of expression ;-)



sridhar veerappan wrote:
> FYI
> 
> 
> Hi,
> I am getting parsing error in xpath transformation
> 
> 
> String s = "if (/blah/text()!='') then blah/text() else ''";
> XPathExpression expression = xpath.compile(s);
> 
> Object o = expression.evaluate(target, XPathConstants.NODESET);  
> 
> I am using normal core java and xml packages to parse
> import javax.xml.parsers.DocumentBuilder;
> import javax.xml.parsers.DocumentBuilderFactory;
> 
> import javax.xml.xpath.XPath;
> import javax.xml.xpath.XPathConstants;
> import javax.xml.xpath.XPathExpression;
> import javax.xml.xpath.XPathFactory;
> 
> import org.w3c.dom.Document;
> import org.w3c.dom.Node;
> 
> import org.w3c.dom.NodeList;
> 
> 
> Exception:
> Exception in thread "main" javax.xml.transform.TransformerException: 
> Could not find function: if
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.error(XPathParser.java:602)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.FunctionCall(XPathParser.java:1449)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.PrimaryExpr(XPathParser.java:1388)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.FilterExpr(XPathParser.java:1287)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.PathExpr(XPathParser.java:1220)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.UnionExpr(XPathParser.java:1178)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.UnaryExpr(XPathParser.java:1084)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.MultiplicativeExpr(XPathParser.java:1005)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.AdditiveExpr(XPathParser.java:947)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.RelationalExpr(XPathParser.java:872)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.EqualityExpr(XPathParser.java:812)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.AndExpr(XPathParser.java:776)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.OrExpr(XPathParser.java:749)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.Expr(XPathParser.java:732)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.initXPath(XPathParser.java:125)
>     at com.sun.org.apache.xpath.internal.XPath.<init>(XPath.java:162)
> 
>     at com.sun.org.apache.xpath.internal.XPath.<init>(XPath.java:198)
>     at 
> com.sun.org.apache.xpath.internal.jaxp.XPathImpl.compile(XPathImpl.java:394)
>     at demo.hw.client.XPathTest.xpathTest(XPathTest.java:35)
> 
>     at demo.hw.client.XPathTest.main(XPathTest.java:64)
> --------------- linked to ------------------
> javax.xml.xpath.XPathExpressionException
>     at 
> com.sun.org.apache.xpath.internal.jaxp.XPathImpl.compile(XPathImpl.java:402)
> 
>     at demo.hw.client.XPathTest.xpathTest(XPathTest.java:35)
>     at demo.hw.client.XPathTest.main(XPathTest.java:64)
> Caused by: javax.xml.transform.TransformerException: Could not find 
> function: if
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.error(XPathParser.java:602)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.FunctionCall(XPathParser.java:1449)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.PrimaryExpr(XPathParser.java:1388)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.FilterExpr(XPathParser.java:1287)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.PathExpr(XPathParser.java:1220)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.UnionExpr(XPathParser.java:1178)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.UnaryExpr(XPathParser.java:1084)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.MultiplicativeExpr(XPathParser.java:1005)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.AdditiveExpr(XPathParser.java:947)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.RelationalExpr(XPathParser.java:872)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.EqualityExpr(XPathParser.java:812)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.AndExpr(XPathParser.java:776)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.OrExpr(XPathParser.java:749)
> 
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.Expr(XPathParser.java:732)
>     at 
> com.sun.org.apache.xpath.internal.compiler.XPathParser.initXPath(XPathParser.java:125)
>     at com.sun.org.apache.xpath.internal.XPath.<init>(XPath.java:162)
> 
>     at com.sun.org.apache.xpath.internal.XPath.<init>(XPath.java:198)
>     at 
> com.sun.org.apache.xpath.internal.jaxp.XPathImpl.compile(XPathImpl.java:394)
>     ... 2 more
> 
> 
> Thanks
> Sri

Reply via email to