Skip to content
/ xmldom Public
forked from jindw/xmldom

A PURE JS W3C Standard based(XML DOM Level2 CORE) DOMParser and XMLSerializer.

License

Notifications You must be signed in to change notification settings

auth0/xmldom

 
 

Repository files navigation

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.

Since version 0.1.19 we started doing custom releases from the fork into @auth0/xmldom and pushed to npm old versions from tags to proper npm release like:

tag version
v0.1.19-auth0_0 v0.1.20
v0.1.19-auth0_1 v0.1.21
v0.1.19-auth0.2 v0.1.22
v0.1.19-auth0.3 v0.1.23

New versions will be published into @auth0/xmldom until we can move to the current versions from https://github.com/xmldom/xmldom. So versions > 0.1.19 wont match upstream releases.

Install:

npm install @auth0/xmldom

Example:

var DOMParser = require("@auth0/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

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

About

A PURE JS W3C Standard based(XML DOM Level2 CORE) DOMParser and XMLSerializer.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.3%
  • Shell 0.7%