网站地图    收藏   

主页 > 前端 > xml >

js把xml字符串转为xml对象_xml对象和xml字符串互转

来源:未知    时间:2022-04-29 10:09 作者:小飞侠 阅读:

[导读] xml字符串转xml对象,这里主要用到了js原生api能力, DOMParser 此API兼容到IE9,IE9以下还只能用IE的解决办法,如 ActiveXObject.loadXML方法。 /***xml字符串转换xml对象数据*@param{Object}xmlStr*/func...

xml字符串转xml对象,这里主要用到了js原生api能力,DOMParser  此API兼容到IE9,IE9以下还只能用IE的解决办法,如 ActiveXObject.loadXML方法。

/**
 * xml字符串转换xml对象数据
 * @param {Object} xmlStr
 */
function xmlStr2XmlObj(xmlStr) {
    var xmlObj = {};
    if (document.all) {
      var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
      xmlDom.loadXML(xmlStr);
      xmlObj = xmlDom;
    } else {
      xmlObj = new DOMParser().parseFromString(xmlStr, "text/xml");
    }
    return xmlObj;
  }
  
  /**
   * xml字符串转换json数据
   * @param {Object} xml
   */
  function xmlObj2json(xml) {
    var xmlObj = xmlStr2XmlObj(xml);
    var jsonObj = {};
    if (xmlObj.childNodes.length > 0) {
      jsonObj = xml2json(xmlObj);
    }
    return jsonObj;
  }
  
  /**
   * xml转换json数据
   * @param {Object} xml
   */
  function xml2json(xml) {
    try {
      var obj = {};
      if (xml.children.length > 0) {
        for (var i = 0; i < xml.children.length; i++) {
          var item = xml.children.item(i);
          var nodeName = item.nodeName;
          if (typeof(obj[nodeName]) == "undefined") {
            obj[nodeName] = xml2json(item);
          } else {
            if (typeof(obj[nodeName].push) == "undefined") {
              var 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);
    }
  }
  export {
    xmlStr2XmlObj,xmlObj2json,xml2json
}

以上就是js把xml字符串转为xml对象_xml对象和xml字符串互转全部内容,感谢大家支持自学php网。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论