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

