xml2jsobj

0.1.6 • Public • Published

xml2jsobj

Convert XML to JS object asynchronously and maintain the order.

Install

npm install xml2jsobj

Example

require("xml2jsobj").convert(
    '<r>\
        <a>A1</a>\
        <b c="d">B</b>\
        <a>\
            A2\
            <e />\
        </a>\
    </r>',
    function(err, result) {
        console.dir(result);
    }
);

Output

{   "name": "R",
    "children": [
        {   "name": "A",
            "children": ["A1"]
        },
        {   "name": "B",
            "attributes": {"C": "d"},
            "children": ["B"]
        },
        {   "name": "A",
            "children": [
                "A2",
                {"name": "E"}
            ]
        }
    ]
}

Idea: just be stupid

  • There are at most three member for each node: name, attributes, children.
  • Maintain the order of the children. In the example above, the <a> tags are NOT combined as an array (which most other packages such as xml2js and its dependents do), and therefore the result object still knows that the second <a> tag is after the <b> tag.
  • Even with only one child, the node would still have a children member as an array.

Usage

Call <obj>.init for initialization if you need. The arguments are just like that for sax's parser, except that trim is default to true.

Readme

Keywords

Package Sidebar

Install

npm i xml2jsobj

Weekly Downloads

2

Version

0.1.6

License

ISC

Last publish

Collaborators

  • kong0107