Skip to content Skip to sidebar Skip to footer

How To Parse Xml String With Prototype?

I have a string
  • Foo
  • Bar
and on client side I have to convert it to JSON. Something like

Solution 1:

You want to use a DOM parser:

https://developer.mozilla.org/en/DOMParser

Something like this...

var xmlStr = '<ul><li e="100" n="50">Foo</li><li e="200" n="150">Bar</li></ul>';

var parser = new DOMParser();
var doc = parser.parseFromString(xmlStr, "application/xml");

var rootElement = doc.documentElement;
var children = rootElement.childNodes;

var jsonObj = {
    data: [],
    params: []
};

for (var i = 0; i < children.length; i++) {
    // I realize this is not how your implementation is, but this should give// you an idea of how to work on the DOM element
    jsonObj.data.push( children[i].getAttribute('e') );
    jsonObj.params.push( children[i].getAttribute('n') );
}

return jsonObj.toJSON();

Also, don't manually build your JSON string. Populate an object, then JSON-encode it.

Edit: Note that you need to test for DOMParser before you can use it. Check here for how you can do that. Sorry for the W3Schools link.

Solution 2:

Why you are building an array object with string? Why not

var data = newArray();
var params = newArray();

$$("li").each(function() {
    data.push ($(this).text());
    params.psuh($(this).attr("e") + ";" + $(this).attr("n"));
});


return {data:data.toString(), params:params.toString()};

or

return {data:data, params:params};

Post a Comment for "How To Parse Xml String With Prototype?"