xmldom-sre

A W3C Standard XML DOM(Level2 CORE) implementation and parser(DOMParser/XMLSerializer).

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
xmldom-sre
0.1.315 years ago5 years agoMinified + gzip package size for xmldom-sre in KB

Readme

XMLDOM Build Status Coverage Status NPM version
This is a fork of jindw's xmldom library together with Rui Azevedo code for compareDocumentPosition. It allows the use of wicked-good-xpath together with xmldom, using a little hack. For an example see speech-rule-engine.
Just to be clear: This is not my code! You are welcome to use the package, but I can not fix any bugs!
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-sre
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
:
```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