【发布时间】:2013-07-29 13:31:57
【问题描述】:
尝试使用 Grails 进行一些转换,并想知道引用问题。 我在“/WEB-INF/xslt/{file}.xsl”下托管了模板,我注意到这些文件具有对其他文件的导入引用 类似的东西:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
<xsl:import href="file2.xsl"/>
<xsl:import href="../xslt/file2.xsl"/>
我知道这不是正确的引用,我想知道在需要转换时如何从要导入的主 xsl 文件中引用 xsl 资源。
我正在通过以下代码处理它们:
def String resources = grailsApplication.mainContext.getResource('/WEB-INF/xslt/'+xslTemplateName).file
def String xslt = new File(resources).text
def factory = TransformerFactory.newInstance()
def transformer = factory.newTransformer(new StreamSource(new StringReader(xslt)))
【问题讨论】:
-
您是否考虑过freemarker 而不是XSL?它有很好的XML 支持,包括xpath,你可以注入java 帮助对象和调用实用方法。我发现它比 XSL 更容易阅读和维护,而且更简洁。