function parseXML(data) {
var xml, tmp;
if (window.DOMParser) {
Standard tmp = new DOMParser();
xml = tmp.parseFromString(data, "text/xml");
} else {
// IE
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = "false";
xml.loadXML(data);
}
tmp = xml.documentElement;
if (!tmp || !tmp.nodeName || tmp.nodeName === "parsererror") {
return null;
}
return xml;
};
function toJson(obj) {
if (this == null) return null;
var retObj = new Object;
buildObjectNode(retObj, /*jQuery*/ obj);
return retObj;
function buildObjectNode(cycleOBJ, /*Element*/ elNode) { /*NamedNodeMap*/
var nodeAttr = elNode.attributes;
if (nodeAttr != null) {
if (nodeAttr.length && cycleOBJ == null) cycleOBJ = new Object;
for (var i = 0; i < nodeAttr.length; i++) {
cycleOBJ[nodeAttr[i].name] = nodeAttr[i].value;
}
}
var nodeText = "text";
if (elNode.text == null) nodeText = "textContent"; /*NodeList*/
var nodeChilds = elNode.childNodes;
if (nodeChilds != null) {
if (nodeChilds.length && cycleOBJ == null) cycleOBJ = new Object;
for (var i = 0; i < nodeChilds.length; i++) {
if (nodeChilds[i].tagName != null) {
if (nodeChilds[i].childNodes[0] != null && nodeChilds[i].childNodes.length <= 1 && (nodeChilds[i].childNodes[0].nodeType == 3 || nodeChilds[i].childNodes[0].nodeType == 4)) {
if (cycleOBJ[nodeChilds[i].tagName] == null) {
cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText];
} else {
if (typeof(cycleOBJ[nodeChilds[i].tagName]) == "object" && cycleOBJ[nodeChilds[i].tagName].length) {
cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = nodeChilds[i][nodeText];
} else {
cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]];
cycleOBJ[nodeChilds[i].tagName][1] = nodeChilds[i][nodeText];
}
}
} else {
if (nodeChilds[i].childNodes.length) {
if (cycleOBJ[nodeChilds[i].tagName] == null) {
cycleOBJ[nodeChilds[i].tagName] = new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName], nodeChilds[i]);
} else {
if (cycleOBJ[nodeChilds[i].tagName].length) {
cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length - 1], nodeChilds[i]);
} else {
cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]];
cycleOBJ[nodeChilds[i].tagName][1] = new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName][1], nodeChilds[i]);
}
}
} else {
cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText];
}
}
}
}
}
}
}
var xml, tmp;
if (window.DOMParser) {
Standard tmp = new DOMParser();
xml = tmp.parseFromString(data, "text/xml");
} else {
// IE
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = "false";
xml.loadXML(data);
}
tmp = xml.documentElement;
if (!tmp || !tmp.nodeName || tmp.nodeName === "parsererror") {
return null;
}
return xml;
};
function toJson(obj) {
if (this == null) return null;
var retObj = new Object;
buildObjectNode(retObj, /*jQuery*/ obj);
return retObj;
function buildObjectNode(cycleOBJ, /*Element*/ elNode) { /*NamedNodeMap*/
var nodeAttr = elNode.attributes;
if (nodeAttr != null) {
if (nodeAttr.length && cycleOBJ == null) cycleOBJ = new Object;
for (var i = 0; i < nodeAttr.length; i++) {
cycleOBJ[nodeAttr[i].name] = nodeAttr[i].value;
}
}
var nodeText = "text";
if (elNode.text == null) nodeText = "textContent"; /*NodeList*/
var nodeChilds = elNode.childNodes;
if (nodeChilds != null) {
if (nodeChilds.length && cycleOBJ == null) cycleOBJ = new Object;
for (var i = 0; i < nodeChilds.length; i++) {
if (nodeChilds[i].tagName != null) {
if (nodeChilds[i].childNodes[0] != null && nodeChilds[i].childNodes.length <= 1 && (nodeChilds[i].childNodes[0].nodeType == 3 || nodeChilds[i].childNodes[0].nodeType == 4)) {
if (cycleOBJ[nodeChilds[i].tagName] == null) {
cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText];
} else {
if (typeof(cycleOBJ[nodeChilds[i].tagName]) == "object" && cycleOBJ[nodeChilds[i].tagName].length) {
cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = nodeChilds[i][nodeText];
} else {
cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]];
cycleOBJ[nodeChilds[i].tagName][1] = nodeChilds[i][nodeText];
}
}
} else {
if (nodeChilds[i].childNodes.length) {
if (cycleOBJ[nodeChilds[i].tagName] == null) {
cycleOBJ[nodeChilds[i].tagName] = new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName], nodeChilds[i]);
} else {
if (cycleOBJ[nodeChilds[i].tagName].length) {
cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length - 1], nodeChilds[i]);
} else {
cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]];
cycleOBJ[nodeChilds[i].tagName][1] = new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName][1], nodeChilds[i]);
}
}
} else {
cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText];
}
}
}
}
}
}
}