Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A PURE JS W3C Standard based(XML DOM Level2 CORE) DOMParser and XMLSerializer.
JavaScript Shell
Tree: a05f004726

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
test
.project
__package__.js
changelog
dom-parser.js
dom.js
package.json
readme.md
sax.js

readme.md

Introduction

Another xml parser for nodejs/browser/rhino for java. Fully compatible with W3C DOM level2; and some compatible with level3. support 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)
    
    //locator and errorHandler is supported
    new DOMParser({
        /* 
         * if the locator is set,
         * every xml node position is provide as node.lineNumber and node.columnNumber
         */
        locator:{},
        /**
         * youcan override the errorHandler for xml parser
         * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
         */
        errorHandler:{warning:callback,error:callback,failtError:callback}
    })
    
  • 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]

    Does not support by default; you need to set the DOMParser locator option, to activate this feature

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