1.0.5 • Published 6 years ago

xmldom-reborn v1.0.5

Weekly downloads
324
License
MIT
Repository
github
Last release
6 years ago

XMLDOM-Reborn 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.

The project is built on top of xmldom , due to original project is not likely being maintained. This fork should be a drop-in replacement and some bug fixing support have being added.

Install:

npm install xmldom-reborn

Example:

var DOMParser = require('xmldom-reborn').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:

    	```javascript
    	parseFromString(xmlsource,mimeType)
    	```
    	* **options extension** _by xmldom_(not BOM standard!!)
    
    	```javascript
    	//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

    ```javascript
    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