Re: [xsl] FOP & Extensions

Subject: Re: [xsl] FOP & Extensions
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Thu, 27 Jan 2011 19:30:40 +0100
CRANFORD, CHRIS wrote:
I have an XML document that contains XPATH references like the
following:

<ROOT>
   <DATAID>1</DATAID>
   <DATAS>
     <DATA>
       <ID>1</ID>
       <TYPE>Type1</TYPE>
     </DATA>
     <DATA>
       <ID>2</ID>
       <TYPE>Type2</TYPE>
     </DATA>
   </DATAS>
   <DATA reference="/ROOT/DATAS/DATA[1]/ID" />
</ROOT>

In my XSLT, I need to be able to acquire the /ROOT/DATA/@reference
string and then using some type of evaluation extension, I need to be
able to obtain the value pointed to by the XPATH of this attribute.
Therefore, the select result would yield '1'.

I've read I could use XALAN-J or EXSLT; however I am unclear how to:

1. Install these extensions in my web application
2. Reference them for use in my XSLT.

Can someone give me a quick and dirty step-by-step of how to do this?

Saxon is an XSLT 2.0 processor implemented in Java so you can use that instead of Xalan-J.
In its commercial versions (or in the 9.1 release) it has an extension function
http://www.saxonica.com/documentation/extensions/functions/evaluate-node.xml
you can use e.g.


  <xsl:template match="/ROOT/DATA">
    <xsl:variable name="ref" select="saxon:evaluate-node(@reference)"
      xmlns:saxon="http://saxon.sf.net/"/>
  </xsl:template>


--


	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/

Current Thread