Package Exports
- forgiving-xml-parser
- forgiving-xml-parser/dist/index.cjs.js
- forgiving-xml-parser/dist/index.esm.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (forgiving-xml-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
forgiving-xml-parser
Enligsh | 简体中文
An XML/HTML parser and serializer for JavaScript. Playground
Features
- Transform XML/HTML to JSON(carry code locationInfo or parse steps)
- Transform JSON back to XML
- Works with node packages, in browser(like browser such as Miniprogram)
- Various options are available to customize the transformation
- custom parsing behavior(souch as allow
node-name
is empty) - supported events
- custom node parser
- custom parsing behavior(souch as allow
Usage
- 1.install
# using npm
npm i forgiving-xml-parser -S
# using yarn
yarn add forgiving-xml-parser
- 2.include
// in node
const ForgivingXmlParser = require('forgiving-xml-parser');
const json = ForgivingXmlParser.parse('...');
// in webpack
import {parse, serialize, ...} from 'forgiving-xml-parser';
const json = parse('...');
<!-- in browser -->
<script src="xxx/forgiving-xml-parser.js"></script>
<script>
// global variable
const json = ForgivingXmlParser.parse("...");
</script>
- 3.use
const { parse, serialize, parseResultToJSON, FxParser } = require("forgiving-xml-parser");
const xml = `<p>hi xml</p>`;
const json = parseResultToJSON(parse(xml), {
allowAttrContentHasBr: true,
allowNodeNameEmpty: true,
allowNodeNotClose: true,
allowStartTagBoundaryNearSpace: true,
allowEndTagBoundaryNearSpace: true,
allowTagNameHasSpace: true,
allowNearAttrEqualSpace: true,
ignoreTagNameCaseEqual: false,
onEvent(type, context, data) {},
}); // { "nodes": [{ "type": "element", "name": "p", "children": [{ "type": "text", "content": "hi xml" }] }] }
serialize(json); // <p>hi xml</p>
const fxParser = new FxParser();
const json2 = parseResultToJSON(fxParser.parse(xml));
console.log(JSON.stringify(json2) === JSON.stringify(json)); // true
console.log(fxParser.serialize(json2) === serialize(json)); // true