首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据XSLT版本选择XSLT处理器

根据XSLT版本选择XSLT处理器
EN

Stack Overflow用户
提问于 2015-07-16 09:10:54
回答 1查看 406关注 0票数 1

我的应用程序有许多用XSLT 1.0编写的旧样式表,而新的样式表是用XSLT 2.0编写的。

使用Saxon 9.6时,许多旧样式表不能正常工作,特别是使用EXSLT set:distinct的样式表。因此,我想继续使用Xalan来转换旧的XSLT 1.0样式表,但是对新的XSLT 2.0样式表使用Saxon

在Java中,在决定XSL文件的xsl:stylesheet/@version属性之前,读取TransformerFactory属性的最佳方法是什么?

到目前为止,应用程序从XSL文件的绝对路径创建一个StreamSource

代码语言:javascript
复制
Source xslSource = new StreamSource(xslFilePath);
String version = ...; // TODO Get XSLT version of XSL file

TransformerFactory transformerFactory;

if ("2.0".equals(version)) {
    transformerFactory = new net.sf.saxon.TransformerFactoryImpl();
} else {
    transformerFactory = new org.apache.xalan.processor.TransformerFactoryImpl();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-16 12:29:09

这可能和其他方法一样好。注意,如果您编写了一个SAX ContentReader来访问xsl:ContentReader/@ version,那么只要知道版本,就可以通过抛出一个SAXException来中止解析。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31449999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档