grails中的xml markupbuilder将属性值中的单引号更改为'

时间:2012-03-03 01:18:05

标签: grails groovy escaping

我正在使用groovys xml markupbuilder来生成我的xml。我有一个标签的属性,它有单引号(')作为其值的一部分,当我在代码中设置并执行打印输出时,我看到生成的xml将单引号更改为' 当我在gsp中渲染这个xml字符串时,这会自动转换为单引号吗? 如果不是如何保留属性值中的单引号?

我试图使用\来逃避单引号,但它在输出日志中显示& apos 这是我有的markupbuilder代码

xml.map(id:"worldmap",name:"worldmap"){
                res_row.each{
       area(shape:"circle",alt:it.key,title:it.key,onclick:"loadActivity(\'"+it.key+"\')") 
                }
            }

最终属性应该是onclick =“loadActivity('New York')”

由于

1 个答案:

答案 0 :(得分:2)

您可以将标记构建器配置为使用双引号:

xml.setDoubleQuotes(true)

完整示例:

import groovy.xml.MarkupBuilder 

def xml = new MarkupBuilder()
xml.setDoubleQuotes(true)
def res_row = [a:1, b:2]

def text= xml.map(id:"worldmap",name:"worldmap"){
   res_row.each{
     area(shape:"circle",alt:it.key,title:it.key,onclick:"loadActivity('${it.key}')") 
   }
}

println text

打印:

<map id="worldmap" name="worldmap">
 <area shape="circle" alt="a" title="a" onclick="loadActivity('a')" />
 <area shape="circle" alt="b" title="b" onclick="loadActivity('b')" />