XmlUtil.serialize(root)将void标记更改为自闭标记

时间:2013-10-28 09:28:38

标签: html xml groovy xhtml

这是一个带有空div标签(<div></div>)的groovy代码段:

import groovy.xml.DOMBuilder
import groovy.xml.XmlUtil

def HTML_STRING = '''
    <html>
    <div></div>
    <div>Some text</div>
    </html>
  '''

def xhtml = DOMBuilder.parse(new StringReader(HTML_STRING))
def root = xhtml.documentElement

XmlUtil.serialize(root, System.out)

这是输出:

<?xml version="1.0" encoding="UTF-8"?>
<html>
    <div/>
    <div>Some text</div>
    </html>

Process finished with exit code 0

似乎XmlUtil.serialize自我关闭无效标签 - 我不希望这样。有人知道如何禁用此功能吗?

谢谢。

乌罗什

1 个答案:

答案 0 :(得分:3)

只要切换到XmlParser,就可以使用XmlNodePrinter

def xhtml = new XmlParser().parseText( HTML_STRING )

new XmlNodePrinter( expandEmptyElements:true ).print( xhtml )