メソッドが特殊文字のエスケープのオンとオフを切り替えることを期待していsetEscapeAttributes( Boolean )
ます。つまり、ビルダーのコンテンツを文字列に変換すると、そのメソッドに入力する値に応じて、特殊文字が異なります。ただし、私の期待が正しくないか、メソッドが正しく機能していないようです。スニペットの例を次に示します。
foo.groovy
import groovy.xml.*
def writer = new StringWriter()
def builder = new MarkupBuilder( writer )
println builder.isEscapeAttributes()
builder.setEscapeAttributes( false )
println builder.isEscapeAttributes()
builder.html {
h2 "hello<br>world"
}
println writer.toString()
を実行groovy foo.groovy
すると、出力は次のようになります。
true
false
<html>
<h2>hello<br>world</h2>
</html>
h2
ラインがあると予想される場所
<h2>hello<br>world</h2>
それで、何が起こっているのですか?この記事の執筆時点で最新の groovy 2.1.8 を使用しています。