私はいくつかのルビー条件を持つXMLファイルを持っています。私は、XMLコンテンツを使用する前に、ファイルとはevalそれを読んでもらいたいです。rubyで '<'で文字列を評価できません
ここでは簡単にするために、テストケースを示します。
str1='<?xml version="1.0" encoding="UTF-8"?>'
str2='if 1+1 == 2 then "yes" end'
eval(str1)
eval(str2)は常に動作しますが、str1は動作しません。私は以下のエラーを取得しています。
(eval):1: syntax error, unexpected '<'
<?xml version="1.0" encoding="UTF-8"?>
^
(eval):1: syntax error, unexpected tIDENTIFIER, expecting end-of-input
<?xml version="1.0" encoding="UTF-8"?>
^
(repl):5:in `eval'
(repl):5:in `<main>'
私は '<'と '?'をエスケープしたいと思います。私は一重引用符を使用して補間を無効にすることはできません。 XMLはevalを時に実行されるいくつかのルビーの条件が含まれていますので。
は、任意のヘルプ
EDIT感謝: をポストの最初の行を確認してください。それは 'それにルビーの状態でXMLファイル'と言う。私は条件を評価したかった。
我々はそれを補間/評価するために二重引用符で囲まれた文字列内のルビーコードを埋め込むと
は、私はそれ有効なルビー式にするために、これは接頭辞や接尾辞である何ができると思いました。 (e.b str1 = "a =#{str1}"またはevalの前に似たもの)。私が与えた例はそれの抜粋です。
'eval'は何をしていますか?もしそうなら、どのような結果が最初の文字列を評価することを期待していましたか? –
"それは 'それにルビー条件付きXMLファイル'と言います。条件を評価したいと思います。" - 次に、__only条件を評価します.__ XMLマークアップをルビとして評価しないでください。そういうわけで、あなたはエラーを受け取ります。 –