Что ж, при условии, что вам нужен сам код Ruby, ваша проблема не в синтаксическом анализаторе, а в том, что ваш XML искажен.
Я все еще предполагаю, что ваш XML выглядит примерно так:
<parent>
<node>
<% some code here! %>
</node>
</parent>
Если это действительно так, содержимое узла node
(heh) должно фактически быть разделом CDATA
. Итак, это должно выглядеть так:
<node><![CDATA[
<% some code here! %>
]]></node>
Если вы сделаете это, REXML сможет правильно проанализировать файл XML и вернуть содержимое node
, которое будет включать теги erb.
Если у вас нет контроля над созданием XML, вы можете, в качестве временного решения, просто (при условии, что любой заданный узел, содержащий ERB только, содержит ERB) выполнить поиск по всему файлу и замените для начального и конечного тегов кода и соответствующим образом добавьте/добавьте разметку CDATA. Вы можете легко автоматизировать это на своем языке, здесь на SO есть много примеров.
person
jason
schedule
03.07.2009