xalan-j extension passing the value of a xsl:variable to the extension class

"Sticker, Markus / Kuehne + Nagel / Ham MI-EC /external" <[email protected]> Mon, 4 Oct 2010 14:25:26 +0200
Newsgroups gmane.text.xml.xalan.java.user
Message-ID <8BE1FACDAC82D647B750825BCA346AE2025E3E9A@w3hamboex11.ger.win.int.kn>
Hello,

I have a problem with my extension, because I didn't get it working to pass a 
value of a xsl:variable to my extension.

-------8<-------- XSLT-CODE ----------------------
		...
		<xsl:variable name="def">
	           <bo>
			<item>1</item>
			<line>4</line>
			<totals>6</totals>
                </bo>
		</xsl:variable>
		<my:lineWeight select="exslt:node-set($def)/bo/totals" />
		
		....
		
		

-------8<-------- Java-CODE ----------------------

	public void line(org.apache.xalan.extensions.XSLProcessorContext context,
			org.w3c.dom.Element elem) {
		
		  String value = elem.getAttribute("select");
				    int val;
		    try 
		    {
		      val = Integer.parseInt (value);
		    } catch (NumberFormatException e) 
		    {
		        e.printStackTrace ();
		        val = 0;
		      }
		    
		lineCount += val;
	}


-------8<-------- Error ----------------------

java.lang.NumberFormatException: For input string: "exslt:node-set($def)/bo/totals"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at kn.iopm.xalan.ext.textFiller.line(textFiller.java:51)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.xalan.extensions.ExtensionHandlerJavaClass.processElement(ExtensionHandlerJavaClass.java:517)
	at org.apache.xalan.templates.ElemExtensionCall.execute(ElemExtensionCall.java:234)
	at org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:425)
	at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:265)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:394)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:248)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400)
	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2270)
	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1356)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1273)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1251)
	at kn.iopm.xalan.ext.run_test.main(run_test.java:28)



Does somebody know what I'm doing wrong? It seams that the SELECT-Attribute wasn't executed.
thanks for your help

best regards

Markus

Kuehne + Nagel (AG & Co.) KG, Geschaeftsleitung: Hans-Georg Brinkmann (Vors.), Dirk Blesius, Reiner Heiken, Bruno Mang, Alfred Manke, Christian Marnetté, Mark Reinhardt, Jens Wollesen, Klaus Jaeger (stellv.), Sitz: Bremen, Registergericht: Bremen, HRA 21928, USt-IdNr.: DE 812773878, Persoenlich haftende Gesellschaft: Kuehne & Nagel A.G., Sitz: Contern/Luxemburg Geschaeftsfuehrender Verwaltungsrat: Klaus-Michael Kuehne