XMLSerializer

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

The XMLSerializer interface provides the serializeToString() method to construct an XML string representing a DOM tree.

Note: The resulting XML string is not guaranteed to be well-formed XML.

Constructor

XMLSerializer()

Creates a new XMLSerializer object.

Instance methods

serializeToString()

Returns the serialized subtree of a string.

Examples

Serializing XML into a string

This example just serializes an entire document into a string containing XML.

js
const s = new XMLSerializer();
const str = s.serializeToString(document);
saveXML(str);

This involves creating a new XMLSerializer object, then passing the Document to be serialized into serializeToString(), which returns the XML equivalent of the document. saveXML() represents a function that would then save the serialized string.

Inserting nodes into a DOM based on XML

This example uses the Element.insertAdjacentHTML() method to insert a new DOM Node into the body of the Document, based on XML created by serializing an Element object.

Note: In the real world, you should usually instead call importNode() method to import the new node into the DOM, then call one of the following methods to add the node to the DOM tree:

Because insertAdjacentHTML() accepts a string and not a Node as its second parameter, XMLSerializer is used to first convert the node into a string.

js
const inp = document.createElement("input");
const XMLS = new XMLSerializer();
const inp_xmls = XMLS.serializeToString(inp); // First convert DOM node into a string

// Insert the newly created node into the document's body
document.body.insertAdjacentHTML("afterbegin", inp_xmls);

The code creates a new <input> element by calling Document.createElement(), then serializes it into XML using serializeToString().

Once that's done, insertAdjacentHTML() is used to insert the <input> element into the DOM.

Specifications

Specification
DOM Parsing and Serialization
# the-xmlserializer-interface

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
XMLSerializer
XMLSerializer() constructor
serializeToString

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also