You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by Kenneth Stephen <ma...@gmail.com> on 2005/06/07 02:23:52 UTC

XPathAPI.eval problems

Hi,

    I have the following code :

    <xsl:template match="/">
		<xsl:variable name="target-dcr" 
			select="document('file:///C:/cygwin/home/zaphod/iwmnt/iceAG/main/US/IMC/WORKAREA/US_IMC/templatedata/Category/IndustryOverview/data/aerospace-and-defense')"
/>
		<xsl:for-each select="$target-dcr">
			<xsl:message><xsl:value-of
select="/ewcm:IBMWebContent/ewcm:Metadata/ewcm:Identifier"
/></xsl:message>
		</xsl:for-each>
		<xsl:variable name="tmp"
			select="java:services.ice.teamsite.XPathUtil.getNodeFromXPath($target-dcr,'/ewcm:IBMWebContent/ewcm:Metadata/ewcm:Identifier')"
/>
    </xsl:template>

    where XPathUtil.getNodeFromXPath is defined as follows :

public class XPathUtil 
{
	public static Node getNodeFromXPath(ExpressionContext xslContext,
Node rootElement, String xpathExpr)
	{
		NodeList nl;
		try{
			PrefixResolver prefixResolver =
xslContext.getXPathContext().getNamespaceContext();
			System.out.println(prefixResolver.getNamespaceForPrefix("ewcm"));
			nl = XPathAPI.eval(rootElement,xpathExpr,prefixResolver).nodelist();
 // dies here
			System.out.println(nl.getLength());
			return nl.item(0);
		}catch(TransformerException te){
			te.printStackTrace();
		}
		return null;
	}
}

    The XSL produces the following output :
file:///c:/cygwin/home/zaphod/cloning/code/template-handlers/CategoryTemplates.xsl;
Line #38; Column #17; a1000038
http://w3.ibm.com/standards/xml/released/ewcm

javax.xml.transform.TransformerException: Unknown error in XPath.
	at org.apache.xpath.XPath.execute(XPath.java:334)
	at org.apache.xpath.XPathAPI.eval(XPathAPI.java:319)
	at services.ice.teamsite.XPathUtil.getNodeFromXPath(XPathUtil.java:27)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:342)
	at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:423)
	at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:258)
	at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:465)
	at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:234)
	at org.apache.xpath.XPath.execute(XPath.java:306)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:316)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:284)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2318)
	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2185)
	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1263)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:671)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1179)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1157)
	at org.apache.xalan.xslt.Process.main(Process.java:1025)
---------
java.lang.NullPointerException
	at org.apache.xpath.axes.AxesWalker.setRoot(AxesWalker.java:256)
	at org.apache.xpath.axes.WalkingIterator.setRoot(WalkingIterator.java:191)
	at org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:250)
	at org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:249)
	at org.apache.xpath.XPath.execute(XPath.java:306)
	at org.apache.xpath.XPathAPI.eval(XPathAPI.java:319)
	at services.ice.teamsite.XPathUtil.getNodeFromXPath(XPathUtil.java:27)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:342)
	at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:423)
	at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:258)
	at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:465)
	at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:234)
	at org.apache.xpath.XPath.execute(XPath.java:306)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:316)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:284)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2318)
	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2185)
	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1263)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:671)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1179)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1157)
	at org.apache.xalan.xslt.Process.main(Process.java:1025)

<?xml version="1.0" encoding="UTF-8"?>

    I'm not sure what I am doing wrong. Any ideas?

Thanks,
Kenneth