Have ideas to improve npm?Join in the discussion! »

    xmldom
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/xmldom package

    0.6.0 • Public • Published

    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
      

    Install

    npm i xmldom

    DownloadsWeekly Downloads

    4,589,796

    Version

    0.6.0

    License

    MIT

    Unpacked Size

    91 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar