- raise "Unexpected element type #{model_name}, " +
- "expected node, way, relation." if model.nil?
- yield model, @reader.expand
+ raise OSM::APIBadUserInput.new("Unexpected element type #{model_name}, " +
+ "expected node, way or relation.") if model.nil?
+ # new in libxml-ruby >= 2, expand returns an element not associated
+ # with a document. this means that there's no encoding parameter,
+ # which means basically nothing works.
+ expanded = @reader.expand
+
+ # create a new, empty document to hold this expanded node
+ new_node = @doc.import(expanded)
+ @doc.root << new_node
+
+ yield model, new_node