Я использую конвертеры Grails XML для регистрации пользовательских маршалеров XML для некоторых классов доменов.
Существует один класс, который мне нужен для добавления XML из файла в целевой XML, например:
<myobject>
<field1>xxx</field1>
<file>
<data>..</data>
...
</file>
</myobject>
Где field1 объявлено в MyObject, но поддерево файла загружается из файла.
Я нашел два способа сделать это, оба избежать тегов для генерации поддерева файла:
<myobject>
<field1>xxx</field1>
<file>
<data>..</data>
...
</file>
</myobject>
Эти методы, где с convertAnother и с chars, оба дают один и тот же результат:
XML.registerObjectMarshaller(MyObject) { o, xml ->
def _file = new File(o.file_name)
xml.build {
field1(o.field1)
xml.startNode 'file'
//xml.convertAnother vf.text
xml.chars vf.text
xml.end()
}
}
Можно ли добавить содержимое файла, но без экранирования?