node package manager

xmldom-fork-fixed

a fork of xmldom with some fixes. should be deleted once we are able to do the fix inside xmldom.

XMLDOM

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.

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({
    /**
     * youcan override the errorHandler for xml parser
     * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
     */
    errorHandler:{warning:callback,error:callback,fatalError:callback}
    })
  • XMLSerializer

    serializeToString(node)
  • 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
    
  • Node

    attribute:
    	textContent
    method:
    	isDefaultNamespace(namespaceURI){
    	lookupNamespaceURI(prefix)
    
  • [Node] Source position extension;

    attribute:
    	//Numbered starting from '1'
    	lineNumber
    	//Numbered starting from '1'
    	columnNumber