XML parsing for browser and node.js
npm install isomorphic-xml2js``sh`
npm install --save isomorphic-xml2js
A drop-in replacement for xml2js that uses the built in DOMParser/XMLSerializer when bundled for the browser, drastically reducing the bundle size (~129k for node-xml2js, currently ~6k for isomorphic-xml2js). Simply exports xml2js when used in a node.js environment.
The goal is to support as much of the xml2js API as reasonably possible. Some features may be dropped if they are found to be unreasonably difficult to implement or if they excessively increase the bundle size or reduce performance.
- strict: false has no effect. Parsing malformed XML documents is unsupported.async: true
- has no effect. Parsing is always synchronous, even though the API is callback-based to match node-xml2js.options.renderOpts
- is ignored and XML documents are not pretty printed.
- XSLTProcessor's attribute is not supported in Firefox, Edge or IE and so doesn't seem portable enough to be worth it. Non-built-in methods of pretty printing XML may be too much of an increase in bundle size for a feature that's usually only useful at development time.validator
- is not implemented.includeWhiteChars: false
- CDATA can be parsed but it is converted to character entities when building.
- Whitespace-only CDATA is not preserved when the default is specified, even though such CDATA is preserved in node-xml2js.new
- Calling a constructor without may give a runtime error depending on the ES target level in your bundler config.addListener
- and on methods on xml2js.Parser` are not supported.