0.6.0 • Published 3 years ago

xmldom v0.6.0

Weekly downloads
4,595,344
License
MIT
Repository
github
Last release
3 years ago

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:

    	```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()
  • 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
@wemystic/esp-gatewaye621-apirn-aht-jitsi-meetreact-native-bluetooth2killi8n-react-native-fast-image@elnk/core-xmlcibxpackagerrn-send-smsdpo.js.platformgulp-susliethos-themedweevernjs_v1@barchart/marketdata-utilities-jsbarchart-marketdata-utilities@tizentv/testwooooosikwooooosik11wooooosik12wooooosik13wooooosik5wooooosik7wooooosik8@tizentv/testmodulepdqjsnode-isomorphic-pkg-readerin-app-purchase-proxydiscordturkey@bardaq/vast-clientts-odatajs-metadatareact-native-template-rfbaseecency-render-helperaolsx-fontgrounduprollup-plugin-html-encoder@fabianonunes/fonteditor-coreairscanairscan-examplereact-native-esc-pos-sahaab@borisovart/atol-kkt-modulelegible-epubjs@triangularcube/epubjscos-js-sdk-v5-ssrdeneme323112wfs2swaggerurl-xihatraa-soapgulp-imu-importerpitstop-server-clirevremotefdmg-xml-jsonweather-rest@ntt_app/react-native-custom-notificationgulp-impaleclockotronreact-native-custom-text-hwjamesread-excel-file-unzip2skeps-payload-createaddns-frmwrktt-devkitgenerator-eclipse-smarthome-uimimosa-svgstoreproxyclick-clireact-native-thanh-toast-librarynami-utils@thanhnguyen14797/react-native-thanh-toast-libraryxml2geojson-litemcx-clientmcxclient_rformulalagulp-sprite-svg-iconsrn-pdf-reader-offlinenode-amcyogastudiofantasia-inconsistency-detectorfantasiaaxtraverse1@kukefess/kkeditor-mathmlboulevardier-schematic@edunse/gulp-sprite-svg-icons@hgv/mss-nodejs@twbs/svg-spriteandrew-saml@tubyte/coreg-wepy-clialexandria-amr-to-eventbridgesaml-update@everything-registry/sub-chunk-3186vue-editor-quill@liwenone/iconfont@ictu/testx-http-keywords@idationtech/svg-font-create@idationtech/svg-font-dump@ignf-geoportal/sdk-2d@ignf-geoportal/sdk-3d@ilb/filedossier-js@i18n-support/i18nsupport-lib@icon-magic/distribute@hyperflow/hyperflow@infinitebrahmanuniverse/nolb-xm
0.6.0

3 years ago

0.5.0

3 years ago

0.4.0

3 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.1.31

4 years ago

0.2.0

4 years ago

0.1.30

4 years ago

0.1.29

4 years ago

0.1.27

7 years ago

0.1.26

7 years ago

0.1.25

7 years ago

0.1.24

7 years ago

0.1.22

8 years ago

0.1.21

8 years ago

0.1.20

8 years ago

0.1.19

10 years ago

0.1.18

10 years ago

0.1.17

10 years ago

0.1.16

11 years ago

0.1.15

11 years ago

0.1.14

11 years ago

0.1.13

12 years ago

0.1.12

12 years ago

0.1.11

12 years ago

0.1.10

12 years ago

0.1.9

12 years ago

0.1.8

12 years ago

0.1.7

12 years ago

0.1.6

12 years ago

0.1.5

12 years ago

0.1.4

12 years ago

0.1.3

12 years ago

0.1.2

12 years ago

0.1.1

12 years ago

0.1.0

12 years ago