"e
を使用できることはわかっていますが、\"
など、あまり鈍くて長い方法があるかどうかは疑問でした。XML内のRubyの二重引用符を逃れる方法
<root name="test" type="Node" action="{puts :ROOT.to_s}">
<leaf type="Node" decider="{print :VAL1.to_s; gets.chomp.to_i}" action="{puts :ONE.to_s}" />
<leaf type="Node" decider="{print :VAL2.to_s; gets.chomp.to_i}" action="{puts :TWO.to_s}" />
<branch type="Node" decider="{100}" action="{}">
<leaf type="LikelihoodNode" decider="{100}" action="{puts :HI.to_s}" arg="0"/>
</branch>
</root>
これを必要とする属性がdecider
とaction
です: は、ここではXMLの一例です。現在、埋め込みコードはsym:to_sハックを少し使っていますが、それは解決策ではありません。
注:action
属性は括弧内のブロックにすぎませんが、処理コードはlambda
をあらかじめ保留しています。
/how/whyのときにエスケープしますか? –
私はRubyコードをXMLに埋め込んでいます。文字列が必要なときに '&quote'と打たなければならないとコードは実行できません。 – Linuxios
RubyコードをXML属性の中に埋め込んでいますか? REXMLを使用して文書を生成していますか?あなたの望むXML出力は何ですか? – Phrogz