0
我一直在試圖節點元素從一個XML文檔複製到一個XSL文件,到目前爲止,我發現下面的解決方案工作得很好:Groovy:在XmlTemplateEngine和SimpleTemplateEngine
//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非常陌生......所以如果有人能夠指出我上面解釋的doc,我將非常感謝。非常感謝!
謝謝,頁面可能會提及隱式刪除xml聲明,我只注意到從第一次讀取該示例時刪除了「gsp」命名空間。 那麼用這個引擎去除這些聲明有什麼直接的好處呢? –