The XMLSerializer method serializeToString() constructs a string representing the specified DOM tree in XML form.


xmlString = anXMLSerializer.serializeToString(rootNode);


The Node to use as the root of the DOM tree or subtree for which to construct an XML representation.

Return value

A DOMString containing the XML representation of the specified DOM tree.


The specified rootNode is not a compatible node type. The root node must be either Node or Attr.
The tree could not be successfully serialized, probably due to issues with the content's compatibility with XML serialization.
A serialization of HTML was requested but could not succeed due to the content not being well-formed.

Usage notes

Compatible node types

The specified root node—and all of its descendants—must be compatible with the XML serialization algorithm. The root node itself must be either a Node or Attr object.

The following types are also permitted as descendants of the root node, in addition to Node and Attr:

If any other type is encountered, a TypeError exception is thrown.

Notes on the resulting XML

There are some things worth noting about the XML output by serializeToString():

  • For XML serializations, Element and Attr nodes are always serialized with their namespaceURI intact. This may mean that a previously-specified prefix or default namespace may be dropped or altered.
  • The resulting XML is compatible with the HTML parser.
  • Elements in the HTML namespace that have no child nodes (thereby representing empty tags) are serialized with both begin and end tags ("<someelement></someelement>") instead of using the empty-element tag ("<someelement/>").


Specification Status Comment
DOM Parsing and Serialization
The definition of 'serializeToString()' in that specification.
Working Draft  

Browser compatibility

See also