当我尝试创建如下节点时:
node 'test' do
'<![CDATA[ <HTML></HTML> ]]>'
end
RABL输出如下内容:
<test><![CDATA[ <HTML></HTML> ]]></test>
我希望输出:
<test><![CDATA[ <HTML></HTML> ]]></test>
怎么做?
答案 0 :(得分:1)
Rabl的XML渲染器在内部使用ActiveSupport的Hash#to_xml
,因此您可以使用该函数的functionality来生成这样的CDATA块:
node 'test' do
{ '_' => lambda { |x| x[:builder].cdata! '<HTML></HTML>' } }
end
请注意,我添加了一个“一次性”键,因为to_xml
会抛出传递的键以进行触发。看一下上面链接中的源代码;可能有更好的方法来解决这个问题。
Rabl为我呈现上面的块,如:
<?xml version="1.0" encoding="UTF-8"?>
<hash>
<test>
<![CDATA[<HTML></HTML>]]>
</test>
</hash>