を持参、問題が解決されます。 マッピング時間が40分の1に減少しました。
11 Mb、10 000行は、以前は200分でマッピングされていましたが、現在5分でマッピングされています。
ソリューション
一つのスクリプトFunctoid、無入力または出力の「インラインXSLTコールテンプレート」、EXSLT Math library found hereからライブラリの最大値()部分を含みます。ライブラリ全体を使用する代わりに、ファイルを解凍してmax()テンプレートを「抽出」しました。無入力または出力と
<xsl:template name="GetMax">
<xsl:param name="nodes" />
<xsl:choose>
<xsl:when test="not($nodes)">NaN</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$nodes">
<xsl:sort data-type="number" order="descending" />
<xsl:if test="position() = 1">
<xsl:value-of select="number(.)" />
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
つスクリプトFunctoidは、「インラインXSLTコールテンプレート」、
<xsl:variable name="var:MaxValueDate">
<xsl:call-template name ="GetMax">
<xsl:with-param name ="nodes" select="Root//Parent/ValueToCalculate" />
</xsl:call-template>
</xsl:variable>
つスクリプトFunctoidを計算するためにノードセットとテンプレート点を属性選択変数を含みます、変数を使用して、出力要素にその値を設定するために、1つの出力を持つ「インラインXSLT」。
<OutputElement>
<xsl:value-of select="$var:MaxValueDate" />
</OutputElement>
Voila!
@Martin、編集して質問をより明示的にすることはできますか? –