Get unlimited public & private packages + package-based permissions with npm Pro.Get started »

@lecafeautomatique/slimdom-sax-parser

1.3.0 • Public • Published

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 string
  • options (object) Optional.
    • position (boolean) Set to true to track the position attribute on DOM nodes
sync('<foo />', { position: false });

Returns

A slimdom Document instance.

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 />'

Install

npm i @lecafeautomatique/slimdom-sax-parser

DownloadsWeekly Downloads

3

Version

1.3.0

License

MIT

Unpacked Size

24.3 kB

Total Files

10

Last publish

Collaborators

  • avatar