xslt - 如何用 ant 执行 XSLT 2.0?

标签 xslt ant saxon

我正在尝试从 ant 运行 XSLT 转换文件。

我正在使用带有 saxon 9 的 XSLT 2.0 样式表解析器(支持 XSLT 2.0)。

问题是 ant 似乎总是在调用 XSLT 1.0 解析器。

这是我的 Ant 文件:

<xslt style="stylesheet.xslt"
   basedir="core/"    
   extension=".xml"
   destdir="core/"
   classpath="D:\\DevTools\\saxon\\bin\\saxon9.jar">
</xslt>

如果我直接调用它(没有 Ant ),它就可以工作。

任何的想法 ?

最佳答案

问题在于,虽然将 Saxon 添加到类路径中,但默认 JAXP 机制会确定使用哪个 TransformerFactory,并且它将使用默认值 Xalan。您要么需要:

  • 套装javax.xml.transform.TransformerFactory系统变量到 net.sf.saxon.TransformerFactoryImpl ,
  • 将 saxon9.jar 添加到 CLASSPATH系统变量,或
  • 使用 <factory name="net.sf.saxon.TransformerFactoryImpl"/>xslt元素
  • 关于xslt - 如何用 ant 执行 XSLT 2.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919692/

    相关文章:

    xslt - 不要在 XSLT 中将 > 转换为 >

    xml - 使用 XSLT 检索 XML 文件名

    html - 有没有办法检测 xslt 中的数字字符串?

    xslt - Saxon XSLT 转换后 Apache FOP 转换缓慢

    java - XPath 评估的撒克逊表示法

    php - XSLT 2.0 PHP 支持。什么时候?

    具有复杂条件的 XSLT for-each

    java - 如何在 ant build 创建的 jar 的错误堆栈跟踪中获取源代码行号?

    ant - 有没有办法在本地没有 WAS 或 RAD 的情况下使用普通 Ant 远程部署到 Websphere 6.1?

    java - war 不支持嵌套的 "fileset"元素