AntXSLT2.0和saxon9加载样式表的速度非常慢
我最近刚刚通过ant使用xslt2.0。我有一个生成文件,看起来是这样的: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
<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>