2014-01-30 1 views
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 .... так будет очень благодарен, если кто-нибудь может указать мне на документ, который объясняет выше. Огромное спасибо!

ответ

0

Посмотрите, что http://groovy.codehaus.org/api/groovy/text/XmlTemplateEngine.html

XmlTemplateEngine удалить объявление XML как часть инструкции по обработке.

+0

Благодарим, что страница может упоминать удаление объявления xml неявно, что я заметил, что пространство имен «gsp» было удалено из этого примера с первого раза, прочитав его. Итак, какова непосредственная польза от удаления этих объявлений с помощью этого движка? –

Смежные вопросы