| | |
| | | const parser = new DOMParser() |
| | | const xmlDoc = parser.parseFromString(xmlStr, 'text/xml') |
| | | const xmlObj = deepParse(xmlDoc.documentElement) |
| | | return xmlObj |
| | | if (Reflect.has(xmlObj, 'Document')) { |
| | | return xmlObj |
| | | } else { |
| | | return { |
| | | Document: xmlObj |
| | | } |
| | | } |
| | | } |
| | | |
| | | // json转xml |
| | |
| | | * @param {string} rootName xml根节点名称 |
| | | * @return {*} string |
| | | */ |
| | | export const JSONToXML = (obj: any, rootName?: string | undefined) => { |
| | | export const JSONToXML = (obj: any, rootName?: string | undefined, isEnd: boolean = false) => { |
| | | let xml = '' |
| | | |
| | | const buildXml = (obj: string | any[], rootName?: string | undefined) => { |
| | | let xml = '' |
| | | if (Array.isArray(obj)) { |
| | | obj.forEach((item) => { |
| | | xml += `<${rootName}>${buildXml(item)}</${rootName}>` |
| | | xml += `<${rootName}>${buildXml(item)}</${rootName}>\n` |
| | | }) |
| | | } else if (typeof obj === 'object') { |
| | | Object.keys(obj).forEach((key) => { |
| | |
| | | if (key === 'Placemark') { |
| | | xml += `${buildXml(obj[key], key)}` |
| | | } else { |
| | | const str = !noWmpl.includes(key) ? 'wpml:' : '' |
| | | xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>` |
| | | const str = !noWmpl.includes(key) && isEnd ? 'wpml:' : '' |
| | | xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>\n` |
| | | } |
| | | } |
| | | }) |
| | |
| | | return xml |
| | | } |
| | | |
| | | const header = isEnd ? '<?xml version="1.0" encoding="UTF-8"?>' : '' |
| | | xml += ` |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | ${header} |
| | | <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.5"> |
| | | ${buildXml(obj, rootName)} |
| | | </kml> |
| | | ` |
| | | |
| | | return xml |
| | | } |