xmldom

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

Deprecated due to CVE-2021-21366 resolved in 0.5.0
Last updated 12 years ago by jindw .
LGPL · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install xmldom 
SYNC missed versions from official npm registry.

XMLDOM

license npm bug issues "help wanted" issues Mutation report

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.

Original project location: https://github.com/jindw/xmldom

Install:

npm install xmldom

Example:

const { DOMParser } = require('xmldom')

const 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')
console.info(doc)

const nsAttr = doc.documentElement.getAttributeNS('./lite', 'x')
console.info(nsAttr)

Note: in Typescript and ES6 you can use the import approach, as follows:

import { DOMParser } from 'xmldom'

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

    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()
    
  • DOMException The DOMException class has the following constants (and value of type Number):

    1. DOMException.INDEX_SIZE_ERR (1)
    2. DOMException.DOMSTRING_SIZE_ERR (2)
    3. DOMException.HIERARCHY_REQUEST_ERR (3)
    4. DOMException.WRONG_DOCUMENT_ERR (4)
    5. DOMException.INVALID_CHARACTER_ERR (5)
    6. DOMException.NO_DATA_ALLOWED_ERR (6)
    7. DOMException.NO_MODIFICATION_ALLOWED_ERR (7)
    8. DOMException.NOT_FOUND_ERR (8)
    9. DOMException.NOT_SUPPORTED_ERR (9)
    10. DOMException.INUSE_ATTRIBUTE_ERR (10)
    11. DOMException.INVALID_STATE_ERR (11)
    12. DOMException.SYNTAX_ERR (12)
    13. DOMException.INVALID_MODIFICATION_ERR (13)
    14. DOMException.NAMESPACE_ERR (14)
    15. DOMException.INVALID_ACCESS_ERR (15)

    The DOMException object has the following properties: code This property is of type Number.

    • extends the Error type thrown as part of DOM API:
  • 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
    

Current Tags

  • 0.6.0                                ...           latest (3 years ago)

36 Versions

  • 0.6.0                                ...           3 years ago
  • 0.5.0                                ...           4 years ago
  • 0.4.0 [deprecated]           ...           4 years ago
  • 0.3.0 [deprecated]           ...           5 years ago
  • 0.2.1 [deprecated]           ...           5 years ago
  • 0.2.0 [deprecated]           ...           5 years ago
  • 0.1.31 [deprecated]           ...           5 years ago
  • 0.1.30 [deprecated]           ...           5 years ago
  • 0.1.29 [deprecated]           ...           5 years ago
  • 0.1.27 [deprecated]           ...           8 years ago
  • 0.1.26 [deprecated]           ...           8 years ago
  • 0.1.25 [deprecated]           ...           8 years ago
  • 0.1.24 [deprecated]           ...           8 years ago
  • 0.1.22 [deprecated]           ...           9 years ago
  • 0.1.21 [deprecated]           ...           9 years ago
  • 0.1.20 [deprecated]           ...           9 years ago
  • 0.1.19 [deprecated]           ...           11 years ago
  • 0.1.18 [deprecated]           ...           11 years ago
  • 0.1.17 [deprecated]           ...           11 years ago
  • 0.1.16 [deprecated]           ...           11 years ago
  • 0.1.15 [deprecated]           ...           12 years ago
  • 0.1.14 [deprecated]           ...           12 years ago
  • 0.1.13 [deprecated]           ...           12 years ago
  • 0.1.12 [deprecated]           ...           12 years ago
  • 0.1.11 [deprecated]           ...           12 years ago
  • 0.1.10 [deprecated]           ...           12 years ago
  • 0.1.9 [deprecated]           ...           12 years ago
  • 0.1.8 [deprecated]           ...           12 years ago
  • 0.1.7 [deprecated]           ...           12 years ago
  • 0.1.6 [deprecated]           ...           12 years ago
  • 0.1.5 [deprecated]           ...           12 years ago
  • 0.1.4 [deprecated]           ...           12 years ago
  • 0.1.3 [deprecated]           ...           12 years ago
  • 0.1.2 [deprecated]           ...           13 years ago
  • 0.1.1 [deprecated]           ...           13 years ago
  • 0.1.0 [deprecated]           ...           13 years ago
Downloads
Today 1
This Week 1
This Month 1
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (0)
None

Copyright 2013 - present © cnpmjs.org | Home |