diff --git a/lib/OpenLayers/Format/XML.js b/lib/OpenLayers/Format/XML.js index 357622cc43..1de3cd3ebc 100644 --- a/lib/OpenLayers/Format/XML.js +++ b/lib/OpenLayers/Format/XML.js @@ -110,7 +110,15 @@ OpenLayers.Format.XML = OpenLayers.Class(OpenLayers.Format, { data = node.xml; } else { var serializer = new XMLSerializer(); - data = serializer.serializeToString(node); + if (node.nodeType == 1) { + // Add nodes to a document before serializing. Everything else + // is serialized as is. This may need more work. See #1218 . + var doc = document.implementation.createDocument("", "", null); + doc.appendChild(node); + data = serializer.serializeToString(doc); + } else { + data = serializer.serializeToString(node); + } } return data; },