
您正在使用为XSLT 1.0设计的JAXP API。如果要使用XSLT
2.0功能,例如在命名模板上启动转换的功能,我建议您改用s9api接口,它为此目的而设计得更好。
但是,如果您有很多现有的JAXP代码并且不想重写它,通常可以通过将JAXP对象向下转换为基础的Saxon实现类来实现所需的功能。例如,您可以将JAXP
Transformer转换为net.sf.saxon.Controller,从而可以访问controller.setInitialTemplate();。涉及到调用transform()方法时,只需提供null作为Source参数。
顺便说一句,如果您正在编写需要2.0处理器的代码,那么我不会使用TransformerFactory.newInstance(),它将为您提供它在类路径中找到的任何旧XSLT处理器。请改用新的net.sf.saxon.TransformerFactoryImpl(),它的(a)功能更强大,(b)更快。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)