tag-soup
Version:
The fastest pure JS SAX/DOM XML/HTML parser.
41 lines (40 loc) • 1.1 kB
JavaScript
import { decodeXML, escapeXML } from 'speedy-entities';
import { createDOMParser } from './createDOMParser.js';
import { createSAXParser } from './createSAXParser.js';
import { createSerializer } from './createSerializer.js';
import { createTokenizer } from './createTokenizer.js';
const xmlParserOptions = {
areSelfClosingTagsRecognized: true,
areProcessingInstructionsRecognized: true,
areCDATASectionsRecognized: true,
isStrict: true,
decodeText: decodeXML,
};
const xmlSerializerOptions = {
areSelfClosingTagsSupported: true,
encodeText: escapeXML,
};
/**
* Tokenizes XML markup as a stream of tokens.
*
* @group Tokenizer
*/
export const XMLTokenizer = createTokenizer(xmlParserOptions);
/**
* Parses XML markup as DOM.
*
* @group DOM
*/
export const XMLDOMParser = createDOMParser(xmlParserOptions);
/**
* Parses XML markup as a stream of tokens.
*
* @group SAX
*/
export const XMLSAXParser = createSAXParser(xmlParserOptions);
/**
* Serializes DOM node as XML string.
*
* @group DOM
*/
export const toXML = createSerializer(xmlSerializerOptions);