Javascript – DOM – Convert XML DOM object to friendly array.
Use this simple javascript function to convert any loaded xml string to a hash/array format variable.
var toDOM = function(node, obj) {
node = !node.nodeName ? (new DOMParser()).parseFromString(node, “text/xml”).firstChild : node;
obj = obj && obj != ‘undefined’ ? obj : {};
if (!node.nodeName || node.nodeName == ‘undefined’) return(obj);
if (node.attributes) {
for (var i = 0; i < node.attributes.length; i++) {
var attr = node.attributes[i];
obj[attr.name.toLowerCase()] = attr.value;
}
}
if (node.childNodes.length) {
for (var i = 0; i < node.childNodes.length; i++) {
var child = node.childNodes[i];
var objchild = {};
if (node.getElementsByTagName(child.tagName).length > 1) {
if (!obj[child.nodeName.toLowerCase()]) obj[child.nodeName.toLowerCase()] = [];
obj[child.nodeName.toLowerCase()][obj[child.nodeName.toLowerCase()].length] = toDOM(child, {});
} else if (child.nodeName && child.nodeName != ‘#cdata-section’) {
obj[child.nodeName.toLowerCase()] = child.nodeName != ‘#text’ ? toDOM(child, {}) : child.value;
} else obj['value'] = obj['value'] ? obj['value'] + child.nodeValue : child.nodeValue;
}
}
return(obj);
}
Note that all elements / attributes are transformed to lowercase. – and sorry there are not much of documentation in code
- 03 Jun
- trackback
- RSS 2.0
- dom, dom2array, javascript, openmobile, xml
-
hazel Blossom
-
Parajumpers Jackets Canada
-
19891001jing
-
cottageme
-
essay writer uk
