Xslt 2.0で変換したいxml(JUnitテスト結果)がたくさんあります。XSLT変換を改善する
私は現在、xmlファイルを検索するために、私のXSLTで変換 とfn:collection()
を実行するためにnet.sf.saxon.TransformerFactoryImpl
を使用しています。
<xsl:variable name="files" select="collection('file:///Users/admin/Documents/testxml/?select=*.xml;recurse=yes')"/>
<xsl:template match="testsuites">
<root>
<xsl:for-each select="$files//testsuites">
<xsl:call-template name="summary"/>
</xsl:for-each>
</root>
</xsl:template>
私に迷惑を2点があります:このよう
最初はJavaの変圧器であるが、私は、XML「ソース」を渡すために持っていますが、私は私のために本当に必要いけません。 xslはxmlの検索とリスティングを行っています。
秒は、10(多分8または7)xmlの変換を実行しているときにJVMのヒープスペースがいっぱいです。私はヒープサイズを上げることができることを知っていますが、私はトランスフォームをほぼ300 xmlに適用しなければならないので効率的ではありません。
xmlの数を改善するために何ができるのですか?
おかげ
EDIT:
私はこのようなsaxon:discard-document()
を使用しようとしているM:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:saxon="http://saxon.sf.net/">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="files" select="collection('file:///Users/admin/Documents/testxml/?select=*.xml;recurse=yes')"/>
<xsl:template match="testsuites">
<root>
<xsl:for-each select="for $x in ($files//testsuites)return saxon:discard-document($x)">
<xsl:call-template name="summary"/>
</xsl:for-each>
</root>
</xsl:template>
が、私はまだ私のヒープ領域でのエラーを取得しています。私は何か間違っているのですか?
Dr. Kay、Saxonの著者は、実際に下記に答えました。 Saxon関連の質問で最も良い結果を得るには、 'saxon-help @ lists.sourceforge.net'がより良いリソースであることがわかります。 Kay博士とAndrew Welch博士(そのブログの著者)は、そこで活躍しています。 – lavinio