Hi,
I am trying to write a simple test xsl file using java extensions. I have a
simple xml file that says
<items>
<item>
<name>a</name>
</item>
<item>
<name>b</name>
</item>
</item>
I want to use xsl to gather all the item names into a class called MyTest
so i have MyTest.java as
public class MyTest
{
int itemsCount=0;
public void foundItem()
{
itemsCount++;
}
}
I want to create an object of this class and pass to an xsl stylesheet so it
can update it when the transformation is being done. And I cant find a way
to get the stylesheet to access the object i have passed in. it seems to
create a new object of type MyTest and update it. A lot of examples i've
seen of passing objects as parameters into XSLs only seem to print it out in
the xsl...how do i update the passed in parameter in the xsl.
my main reads...
public static void main (String[]args)
{
String xmlFile = "input.xml";
String xslFile = "input.xsl";
MyTransformer myt;
Source xml;
Source xsl;
Result result = new StreamResult (System.out);
HashMap params = new HashMap ();
MyTest x=new MyTest();
try
{
myt = new MyTransformer ();
xml = myt.SourceFromFilename (xmlFile);
xsl = myt.SourceFromFilename (xslFile);
params.put ("changeme", x);
myt.transform (xml, xsl, result, params);
System.out.println("%%%%%%%%%%%\n"+x.itemsCount);
} catch (Exception e)
{
System.out.println ("Exception: " + e.getMessage ());
}
and the xsl reads as
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:mytest="MyTest"
extension-element-prefixes="mytest">
<xsl:param name="changeme" />
<xsl:template match="/">
<!-- this does print the object as in main -->
<xsl:value-of select="$changeme"/>
<xsl:apply-templates select="items">
<xsl:with-param name="changeme" select="$changeme" />
</xsl:apply-templates>
</xsl:template>
<xsl:template match="items">
<xsl:apply-templates select="item">
</xsl:apply-templates>
</xsl:template>
<xsl:template match="item">
<xsl:value-of select="mytest:foundItem()"/>
</xsl:template>
</xsl:stylesheet>
please point to a doc/example which shows how to use the object passed into
the xsl.
thanks
sivaram
_________________________________________________________________
Share your photos without swamping your Inbox. Get Hotmail Extra Storage
today! http://join.msn.com/?PAGE=features/es
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list