Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AntXSLT2.0和saxon9加载样式表的速度非常慢_Ant_Saxon_Xslt - Fatal编程技术网

AntXSLT2.0和saxon9加载样式表的速度非常慢

AntXSLT2.0和saxon9加载样式表的速度非常慢,ant,saxon,xslt,Ant,Saxon,Xslt,我最近刚刚通过ant使用xslt2.0。我有一个生成文件,看起来是这样的: <project name="TranformXml" default="TransformFile"> <target name="TransformFile"> <xslt in="input.xml" out="student.html" style="transform.xsl" proc

我最近刚刚通过ant使用xslt2.0。我有一个生成文件,看起来是这样的:

<project name="TranformXml" default="TransformFile">
    <target name="TransformFile">
        <xslt in="input.xml"
            out="student.html"
            style="transform.xsl"
            processor="trax" classpath="./lib/saxon/saxon9he.jar">

            <factory name="net.sf.saxon.TransformerFactoryImpl"/>

        </xslt>  
    </target>
</project>
我觉得很难相信要花9秒钟才能完成这一切。在生产中,样式表将变得更加复杂,输入也将更大。实际上,我希望将整个转换过程保持在几秒钟以内

有什么想法吗

谢谢


Casey

我发现我的性能正在下降,通过web加载DTD定义

我创建了一个空的.dtd文件,并使用ant xmlcatalog将dtd公共ID引用到它,如下所示(在我的任务中):



这将构建时间从22分钟(许多文档)减少到3秒

我认为这不是转变本身,而是整个过程。运行JVM、解析文档、编译样式表和转换可能需要一些时间……我过去也遇到过类似的问题。添加
@processor=“trax”
并指定
似乎有帮助。另一个问题可能是类装入器和查找saxon9he.jar。使用您的示例进行测试,我(Win7、Java 6、ANT 1.8.2)用了3秒钟就运行了。您使用的ANT版本是什么?我使用的是ANT版本1.8.0。我尝试了Leigh在下面所说的,它确实加快了这个过程,但只是第一次转换。第二次变换也会出现同样的延迟,需要1分48秒。这对于脚本的执行时间来说是不可接受的。我不明白的是,同样的转换在氧气中的执行时间实际上是10毫秒以下。
<student_list>
    <student>
        <name>George Washington</name>
        <major>Politics</major>
        <phone>312-123-4567</phone>
        <email>gw@example.edu</email>
    </student>

</student_list>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="html"/>

    <xsl:template match="/">
    <html>
        <head>
            <title>Student Directory</title>
        </head>
        <body>
        <xsl:apply-templates />
        </body>

    </html>
    </xsl:template>


</xsl:stylesheet>
ant -f build.xml 
Buildfile: /home/casey/Development/ant-tests/xslt-transform/build.xml

TransformFile:
     [xslt] Processing /home/casey/Development/ant-tests/xslt-transform/input.xml to /home/casey/Development/ant-tests/xslt-transform/student.html
     [xslt] Loading stylesheet /home/casey/Development/ant-tests/xslt-transform/transform.xsl

BUILD SUCCESSFUL
Total time: 9 seconds
<xmlcatalog>
  <dtd publicid="-//W3C//DTD XHTML 1.0 Transitional//EN" location="empty.dtd"/>
<xmlcatalog>