xml markupbuilder в Grails, заменяя одинарные кавычки в значении атрибута на ' - PullRequest
1 голос
/ 03 марта 2012

Я использую groovys xml markupbuilder для генерации моего xml.У меня есть атрибут тега, который имеет одинарную кавычку (') как часть его значения, и когда я устанавливаю его в коде и выполняю распечатку, я вижу, что сгенерированный xml имеет одинарную кавычку, замененную на' Это автоматически преобразуется в одинарную?цитата, когда я отрисовываю эту строку XML в GSP?если нет, то как мне сохранить одинарную кавычку в значении атрибута?

Я пытался экранировать одинарную кавычку, используя \, но она все равно показывает и выводит в выходной журнал вот код разметки, который у меня есть

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 Ответ

2 голосов
/ 30 мая 2012

вы можете настроить разметку на использование двойных кавычек:

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')" />

...