Skip to content

kong0107/xml2jsobj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Convert XML string to JS object

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published