0.1.6 • Published 8 years ago

xml2jsobj v0.1.6

Weekly downloads
3
License
ISC
Repository
github
Last release
8 years ago

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.

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago