xmldom-alt

An alternative package of the xmldom that includes some pull requests from the original (see changelog).


Keywords
w3c, dom, xml, parser, javascript, DOMParser, XMLSerializer
License
Other
Install
npm install xmldom-alt@0.2.0-a1

Documentation

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