MarkupBuilder不会转义元素值

时间:2017-09-20 19:53:42

标签: groovy

我正在尝试使用MarkupBuilder生成HTML,并想知道我是否可以转换转义值,请参阅下面的示例。

    new MarkupBuilder().with {
        setEscapeAttributes(false)
        p('Hello <strong>World!</strong>')
        p('Hello ') { strong('World!') }
    }

第一个p标记中的强标记已转义。第二个p标记中的第二个强标记未进行转义。如何配置MarkupBuilder以不转义第一个p标记中的强标记?

<p>Hello &lt;strong&gt;World!&lt;/strong&gt;</p>
<p>Hello 
  <strong>World!</strong>
</p>

1 个答案:

答案 0 :(得分:0)

escapeAttributes适用于属性。您没有设置属性

您需要使用mkp.yieldUnescaped

new MarkupBuilder().with {
    p { mkp.yieldUnescaped 'Hello <strong>World!</strong>' }
    p('Hello ') { strong('World!') }
}