@lecafeautomatique/slimdom-sax-parser
v1.3.0
Published
Parses XML to a Slimdom document using Sax
Downloads
4
Readme
slimdom-sax-parser
Parses XML to a slimdom document using saxes. slimdom is a fast, tiny, standards-compliant XML DOM implementation for browser and node.
- Parses text, elements, attributes, processing instructions, comments and CDATA
- Supports namespaces
- Optionally track the position in XML string source
- Works in NodeJS and the browser
Exports
sync
(function) Synchronously return a slimdom Document for the given XML string.slimdom
(slimdom) A reference to the lib this parser is built around, as a convenience.
import { sync, slimdom } from 'slimdom-sax-parser';
Arguments
xml
(string) The XML you want to parse as a stringoptions
(object) Optional.position
(boolean) Set totrue
to track theposition
attribute on DOM nodes
sync('<foo />', { position: false });
Returns
const document = sync('<foo />');
Examples
Modify the XML DOM:
import { sync } from 'slimdom-sax-parser';
const document = sync(`<foo />`);
document.documentElement.setAttribute('bar', 'baz');
// document.documentElement.hasAttribute('bar')
Use with an XPath engine (fontoxpath):
import { sync } from 'slimdom-sax-parser';
import { evaluateXPath } from 'fontoxpath';
const document = sync(`<foo><bar /><baz /></foo>`);
// evaluateXPath('/foo/*', document).length === 2
Use source code position tracking:
import { slimdom, sync } from 'slimdom-sax-parser';
const xml = '<example><child-element /></example>';
const document = sync(xml, { position: true });
// document instanceof slimdom.Document
const childElement = document.documentElement.firstChild;
// childElement instanceof slimdom.Element
const position = childElement.position;
// xml.substring(position.start, position.end) === '<child-element />'