Have ideas to improve npm?Join in the discussion! »

    w3c-xmlserializer
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/w3c-xmlserializer package

    2.0.0 • Public • Published

    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 Errors 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 the innerHTML of non-well-formed subtrees will throw.
    • The xhr.send() method does not require well-formedness, i.e. sending non-well-formed Documents will serialize and send them anyway.

    Install

    npm i w3c-xmlserializer

    DownloadsWeekly Downloads

    11,042,694

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    18 kB

    Total Files

    6

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar