私は現在、REXML を使用して XML ファイルを解析しており、内部ファイルから 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 フラグメントを常に正しく解析するとは限らないのではないかと心配しています。これを行うより良い方法はありますか?