Package Exports
- w3c-xmlserializer
- w3c-xmlserializer/lib/serialize.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (w3c-xmlserializer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
w3c-xmlserializer
An XML serializer that follows the W3C specification.
This package can be used in Node.js, as long as you feed it a DOM node, e.g. one produced by jsdom.
Basic usage
Assume you have a DOM tree rooted at a node node
. In Node.js, you could create this using jsdom as follows:
const { JSDOM } = require("jsdom");
const { document } = new JSDOM().window;
const node = document.createElement("akomaNtoso");
Then, you use this package as follows:
const serialize = require("w3c-xmlserializer");
console.log(serialize(node));
// => '<akomantoso xmlns="http://www.w3.org/1999/xhtml"></akomantoso>'
requireWellFormed
option
By default the input DOM tree is not required to be "well-formed"; any given input will serialize to some output string. You can instead require well-formedness via
serialize(node, { requireWellFormed: true });
which will cause Error
s to be thrown when non-well-formed constructs are encountered. Per the spec, this largely is about imposing constraints on the names of elements, attributes, etc.
As a point of reference, on the web platform:
- The
innerHTML
getter uses the require-well-formed mode, i.e. trying to get theinnerHTML
of non-well-formed subtrees will throw. - The
xhr.send()
method does not require well-formedness, i.e. sending non-well-formedDocument
s will serialize and send them anyway.