Skip to content
This repository

A PURE JS W3C Standard based(XML DOM Level2 CORE) DOMParser and XMLSerializer.

branch: master
readme.md

XMLDOM Build Status Coverage Status NPM version

A JavaScript implementation of W3C DOM for Node.js, Rhino and the browser. Fully compatible with W3C DOM level2; and some compatible with level3. Supports DOMParser and XMLSerializer interface such as in browser.

Install:

npm install xmldom

Example:

var DOMParser = require('xmldom').DOMParser;
var doc = new DOMParser().parseFromString(
    '<xml xmlns="a" xmlns:c="./lite">\n'+
        '\t<child>test</child>\n'+
        '\t<child></child>\n'+
        '\t<child/>\n'+
    '</xml>'
    ,'text/xml');
doc.documentElement.setAttribute('x','y');
doc.documentElement.setAttributeNS('./lite','c:x','y2');
var nsAttr = doc.documentElement.getAttributeNS('./lite','x')
console.info(nsAttr)
console.info(doc)

API Reference

  • DOMParser:

    parseFromString(xmlsource,mimeType)
    
    • options extension by xmldom(not BOM standard!!)
    //added the options argument
    new DOMParser(options)
    
    //errorHandler is supported
    new DOMParser({
        /**
         * locator is always need for error position info
         */
        locator:{},
        /**
         * you can override the errorHandler for xml parser
         * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
         */
        errorHandler:{warning:function(w){console.warn(w)},error:callback,fatalError:callback}
        //only callback model
        //errorHandler:function(level,msg){console.log(level,msg)}
    })
    
    
  • XMLSerializer

    serializeToString(node)
    

    DOM level2 method and attribute:

  • Node

    attribute:
        nodeValue|prefix
    readonly attribute:
        nodeName|nodeType|parentNode|childNodes|firstChild|lastChild|previousSibling|nextSibling|attributes|ownerDocument|namespaceURI|localName
    method: 
        insertBefore(newChild, refChild)
        replaceChild(newChild, oldChild)
        removeChild(oldChild)
        appendChild(newChild)
        hasChildNodes()
        cloneNode(deep)
        normalize()
        isSupported(feature, version)
        hasAttributes()
    
  • DOMImplementation

    method:
        hasFeature(feature, version)
        createDocumentType(qualifiedName, publicId, systemId)
        createDocument(namespaceURI, qualifiedName, doctype)
    
  • Document : Node

    readonly attribute:
        doctype|implementation|documentElement
    method:
        createElement(tagName)
        createDocumentFragment()
        createTextNode(data)
        createComment(data)
        createCDATASection(data)
        createProcessingInstruction(target, data)
        createAttribute(name)
        createEntityReference(name)
        getElementsByTagName(tagname)
        importNode(importedNode, deep)
        createElementNS(namespaceURI, qualifiedName)
        createAttributeNS(namespaceURI, qualifiedName)
        getElementsByTagNameNS(namespaceURI, localName)
        getElementById(elementId)
    
  • DocumentFragment : Node

  • Element : Node

    readonly attribute:
        tagName
    method:
        getAttribute(name)
        setAttribute(name, value)
        removeAttribute(name)
        getAttributeNode(name)
        setAttributeNode(newAttr)
        removeAttributeNode(oldAttr)
        getElementsByTagName(name)
        getAttributeNS(namespaceURI, localName)
        setAttributeNS(namespaceURI, qualifiedName, value)
        removeAttributeNS(namespaceURI, localName)
        getAttributeNodeNS(namespaceURI, localName)
        setAttributeNodeNS(newAttr)
        getElementsByTagNameNS(namespaceURI, localName)
        hasAttribute(name)
        hasAttributeNS(namespaceURI, localName)
    
  • Attr : Node

    attribute:
        value
    readonly attribute:
        name|specified|ownerElement
    
  • NodeList

    readonly attribute:
        length
    method:
        item(index)
    
  • NamedNodeMap

    readonly attribute:
        length
    method:
        getNamedItem(name)
        setNamedItem(arg)
        removeNamedItem(name)
        item(index)
        getNamedItemNS(namespaceURI, localName)
        setNamedItemNS(arg)
        removeNamedItemNS(namespaceURI, localName)
    
  • CharacterData : Node

    method:
        substringData(offset, count)
        appendData(arg)
        insertData(offset, arg)
        deleteData(offset, count)
        replaceData(offset, count, arg)
    
  • Text : CharacterData

    method:
        splitText(offset)
    
  • CDATASection

  • Comment : CharacterData

  • DocumentType

    readonly attribute:
        name|entities|notations|publicId|systemId|internalSubset
    
  • Notation : Node

    readonly attribute:
        publicId|systemId
    
  • Entity : Node

    readonly attribute:
        publicId|systemId|notationName
    
  • EntityReference : Node

  • ProcessingInstruction : Node

    attribute:
        data
    readonly attribute:
        target
    

DOM level 3 support:

  • Node

    attribute:
        textContent
    method:
        isDefaultNamespace(namespaceURI){
        lookupNamespaceURI(prefix)
    

DOM extension by xmldom

  • [Node] Source position extension;

    attribute:
        //Numbered starting from '1'
        lineNumber
        //Numbered starting from '1'
        columnNumber
    
Something went wrong with that request. Please try again.