Groovy: XmlTemplateEngine and SimpleTemplateEngine



我一直在尝试将节点元素从一个XML文档复制到XSL文件,到目前为止,我在下面的解决方案中找到了很好的工作:

        //file path variables are mocked
        def rep = new XmlParser().parse(new File(*filepath1*))
        def pw = new StringWriter()
        new XmlNodePrinter(new PrintWriter(pw)).print(rep)
        rep = pw.toString()
        def engine = new groovy.text.SimpleTemplateEngine()
        def binding = [responsexml:rep]
        def template = engine.createTemplate(new File(*filepath2*)).make(binding)
        new File(*filepath3*).write(template.toString())

模板XSL文件看起来如下:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    ${responsexml}
</xsl:template>
</xsl:stylesheet>

复制节点元素后,最终的XSL文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <AAA>
               *SOME CONTENT*
            </AAA>
</xsl:template>

好的...对不起,很长时间的背景,这是问题:我在上面使用了SimpleTemplateEngine,这使我产生了一个带有内容的文件,但是当我切换到使用XmlTemplateEngine<?xml version="1.0" encoding="UTF-8"?>从生成的XSL文件中删除。

我想知道为什么XML引擎实际上没有预期的工作?这可能是一个非常努力的问题,因为我对Groovy非常陌生。...如果有人可以将我指向上面的文档,这将非常感谢。非常感谢!

看,http://groovy.codehaus.org/api/groovy/groovy/text/xmltemplateengine.html

xmltemplateEngine删除XML声明作为处理指令的一部分。

相关内容

  • 没有找到相关文章

最新更新