Enligsh | 简体中文
An XML/HTML parser and serializer for JavaScript. Playground
- 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
- 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