Е, при условие, че искате самия код на 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