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
|