Now when I apply a filtering expression like the one below, for about 3000
rows of data this operation takes about 2 minutes, which seems quite slow.
<xsl:copy-of select="DataRow[xalan:evaluate($filterstmt)]" />
Probably Xalan is parsing and evaluating the XPath expression once for each
DataRow.
Saxon offers an alternative, you can split the dynamic evaluation of XPath
expressions into two phases, parsing and evaluation:
<xsl:variable name="condition" select="saxon:expression($filterstmt)"/>
<xsl:copy-of select="DataRow[saxon:eval($condition)]"/>
This should be an order of magnitude faster.
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list