如这个小片段所示:
import groovy.xml.*
def xml = '''<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<Data>
<![CDATA[ Test 123 ]]>
</Data>
'''
def document = DOMBuilder.parse( new StringReader( xml ) )
def root = document.documentElement
def result = XmlUtil.serialize( root )
println document.getXmlStandalone()
println result
结果是真的,但它打印整个东西没有standalone ='yes',我绝对需要进一步处理。我试图将其设置为true,但整个事情似乎没有得到很好的实施......也许有人可以帮助我在这里?
答案 0 :(得分:0)
我不相信你可以使用XmlUtil
,因为它只是写出一个通用声明。
然而,您可以滚动自己的序列化:
import javax.xml.transform.*
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult
import groovy.xml.*
def xml = '''<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
|<Data>
| <![CDATA[ Test 123 ]]>
|</Data>'''.stripMargin()
def document = DOMBuilder.parse( new StringReader( xml ) )
String result = TransformerFactory.newInstance().newTransformer().with {
setOutputProperty( OutputKeys.INDENT, 'yes' )
setOutputProperty( OutputKeys.STANDALONE, 'yes' )
new StreamResult( new StringWriter() ).with { result ->
DOMSource source = new DOMSource( document )
transform( source, result )
result.writer.toString()
}
}
println result
打印哪些:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Data>
<![CDATA[ Test 123 ]]>
</Data>