我希望用 CDATA 块替换转义的 XML 部分,主要是为了提高 XML 的可读性,不幸的是必须由人类阅读。
// Input
def xml = '''
<search>
<search-query>
<nested/<
<xml/<
</search-query>
</search>
'''
def search = new XmlParser().parseText(xml)
def query = search."search-query"
query.replaceNode() {
"search-query"() {
// TODO how can I add a CDATA section here?
//yieldUnescaped("<![CDATA[${query.text()}]]>")
}
}
new XmlNodePrinter(preserveWhitespace:true).print(search)
// Expected
'''
<search>
<search-query>
<![CDATA[<nested/>
<xml/>]]>
</search-query>
</search>
'''
- 性能并不重要
- 我希望能够仅在某些元素上使用 CDATA