но мне было интересно, есть ли более "отличный" способ сделать это?
Конечно, есть: класс groovy.xml.XmlUtil
Я не уверен, какой была версия Groovy, когда этот класс был добавлен, но я думаю, что это была ранняя версия.
Редактировать : класс groovy.xml.XmlUtil существует с версии 1.6.0 ; в версии 1.5.x он был назван groovy.xml.dom.DOMUtil . В любой версии этот класс не делает ничего особенного; если вы посмотрите на его источник , вы увидите, что это просто оболочка вокруг java.xml.transform
. Тем не менее, я действительно ценю, что Groovy GDK предоставляет простой способ выполнения такой распространенной операции (запись xml в строку), тогда как Java JDK не может.
* * Пример тысяча двадцать-один: * * 1 022
import javax.xml.parsers.DocumentBuilderFactory
import groovy.xml.XmlUtil
def fileName = 'build.xml'
def builder = DocumentBuilderFactory.newInstance().newDocumentBuilder()
def inputStream = new FileInputStream(fileName)
def doc = builder.parse(inputStream)
println XmlUtil.serialize(doc.documentElement)
Всегда обращайте внимание на Groovy API и Groovy для JDK , прежде чем переходить к собственному решению (урок, который я усвоил нелегко)