mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-13 18:45:06 +08:00
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
function xmlStr2XmlObj(xmlStr) {
|
|
let xmlObj = {};
|
|
if (document.all) {
|
|
const xmlDom = new window.ActiveXObject("Microsoft.XMLDOM");
|
|
xmlDom.loadXML(xmlStr);
|
|
xmlObj = xmlDom;
|
|
} else {
|
|
xmlObj = new DOMParser().parseFromString(xmlStr, "text/xml");
|
|
}
|
|
return xmlObj;
|
|
}
|
|
|
|
function xml2json(xml) {
|
|
try {
|
|
let obj = {};
|
|
if (xml.children.length > 0) {
|
|
for (let i = 0; i < xml.children.length; i++) {
|
|
const item = xml.children.item(i);
|
|
const nodeName = item.nodeName;
|
|
if (typeof obj[nodeName] == "undefined") {
|
|
obj[nodeName] = xml2json(item);
|
|
} else {
|
|
if (typeof obj[nodeName].push == "undefined") {
|
|
const old = obj[nodeName];
|
|
obj[nodeName] = [];
|
|
obj[nodeName].push(old);
|
|
}
|
|
obj[nodeName].push(xml2json(item));
|
|
}
|
|
}
|
|
} else {
|
|
obj = xml.textContent;
|
|
}
|
|
return obj;
|
|
} catch (e) {
|
|
console.log(e.message);
|
|
}
|
|
}
|
|
|
|
function xmlObj2json(xml) {
|
|
const xmlObj = xmlStr2XmlObj(xml);
|
|
console.log(xmlObj);
|
|
let jsonObj = {};
|
|
if (xmlObj.childNodes.length > 0) {
|
|
jsonObj = xml2json(xmlObj);
|
|
}
|
|
return jsonObj;
|
|
}
|
|
|
|
export default xmlObj2json;
|