zoukankan      html  css  js  c++  java
  • JavaScript之XML总结

          之前我们已经学习过刘伟老师讲的XML视频,对XML有了一定的了解。现在JavaScript视频中再次对它进行了讲解,只不过所针对的内容不同。先前讲解的是XML的基本概念,对它的元素、节点、应用等问题进行详细说明。而此次的主要内容是实现XML的动态操作。

        使用JavaScript加载XML主要有两种方式:内部加载和外部加载。(注:下述实现过程,仅在IE中可以实现)

           内部加载:

    function createXMLDOM(){
      var version=['MSXML2.DOMDocument6.0',
                   'MSXML2.DOMDocument3.0',
                   'MSXML2.DOMDocument'];
    			   
      for (var i=0;i<version.length;i++){
        try{
    	  //对于无法进行判断的条件,可以使用try-catch语句
    	  var xmlDom=new ActiveXObject(version[i]);
    	  return xmlDom;
    	}catch(e){
    	  //跳过错误	  
    	}	
      }
      throw new Error('您的系统或者浏览器不支持MSXML库');
    }
    
    var xmlDom=createXMLDOM();
    xmlDom.loadXML('<root>
    <user>wang</user>
    </root>');//加载XML字符串
    alert(xmlDom.xml);//序列化XML,打印字符串
    var user=xmlDom.getElementsByTagName('user')[0];
    alert(user.nodeType);//1
    alert(user.tagName);//user
    alert(user.firstChild.nodeValue);//wang
    

       其效果如下:


       

       外部加载:

    function createXMLDOM(){
      var version=['MSXML2.DOMDocument6.0',
                   'MSXML2.DOMDocument3.0',
                   'MSXML2.DOMDocument'];
    			   
      for (var i=0;i<version.length;i++){
        try{
    	  //对于无法进行判断的条件,可以使用try-catch语句
    	  var xmlDom=new ActiveXObject(version[i]);
    	  return xmlDom;
    	}catch(e){
    	  //跳过错误	  
    	}	
      }
      throw new Error('您的系统或者浏览器不支持MSXML库');
    }
    var xmlDom=createXMLDOM();
    xmlDom.load('demo.xml');//加载外部XML文件
    alert(xmlDom.xml);//序列化XML,打印字符串
    var user=xmlDom.getElementsByTagName('user')[0];
    alert(user.nodeType);//1 表示节点类型:1是元素节点
    alert(user.tagName);//user
    alert(user.firstChild.nodeValue);//wang
    


        加载的外部文件demo.xml:
    <root>
      <user>wang</user>
      <email>wangpengbo92@163.com</email>
      <url>http://baidu.com</url>
    </root>

        其效果如下:


       

       动态添加节点:

    function createXMLDOM(){
      var version=['MSXML2.DOMDocument6.0',
                   'MSXML2.DOMDocument3.0',
                   'MSXML2.DOMDocument'];
    			   
      for (var i=0;i<version.length;i++){
        try{
    	  //对于无法进行判断的条件,可以使用try-catch语句
    	  var xmlDom=new ActiveXObject(version[i]);
    	  return xmlDom;
    	}catch(e){
    	  //跳过错误	  
    	}	
      }
      throw new Error('您的系统或者浏览器不支持MSXML库');
    }
    var xmlDom=createXMLDOM();
    xmlDom.load('demo.xml');//加载外部XML文件
    //添加节点
    var bbb=xmlDom.createElement('bbb');
    var root=xmlDom.documentElement;
    root.appendChild(bbb);
    var bbbText=xmlDom.createTextNode('kkk');
    bbb.appendChild(bbbText);
    alert(xmlDom.xml);
    

        效果如下:



        但是,动态添加节点的过程相对来说比较麻烦,如果是添加单一节点,此法还可以使用。但如果添加的节点数过多时,就显得麻烦了。个人感觉使用外部加载的方法比较适合。

       

  • 相关阅读:
    第一章 初识shiro
    LDAP概念
    css定位
    css随笔1
    自己动手实现信息检索系统
    IntelliJ IDEA和pycharm注册码
    俄罗斯农夫算法
    [NOIP2013]转圈游戏
    [codevs1287]矩阵乘法
    [洛谷1314]无序字母对
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253792.html
Copyright © 2011-2022 走看看