В настоящее время я анализирую файл XML с использованием REXML и пытаюсь найти способ вставить фрагмент XML из внутреннего файла.
В настоящее время я использую некоторую логику, подобную следующей:
doc.elements.each('//include') do |element|
handleInclude( element )
end
def handleInclude( element )
if filename = element.attributes['file']
data = File.open( filename ).read
doc = REXML::Document.new( data )
element.parent.replace_child( element, doc.root )
end
end
Где мой XML выглядит следующим образом:
<include file="test.xml" />
Но это кажется немного неуклюжим, и меня беспокоит, что REXML не всегда может правильно анализировать фрагменты XML из-за отсутствия в некоторых случаях правильного корневого узла. Есть ли лучший способ сделать это?