js 操作xml文件

文中尽量用上所有的操作和属性,以做示范。

大多数浏览器都有读取和操作 XML 的内建 XML 解析器。解析器(XML Parser)把 XML 转换为 JavaScript 可访问的对象。

解析器把XML 载入内存,然后把它转换为可通过JavaScript 访问的 XML DOM 对象。微软的XML解析器与其他浏览器中的解析器之间,存在一些差异。微软的解析器支持 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都包含遍历 XML 树、访问插入及删除节点(元素)及其属性的函数。

XML DOM 把XML文档视为一种树结构。这种树结构被称为节点树。

可通过这棵树访问所有节点。可以修改或删除它们的内容,也可以创建新的元素。

这颗节点树展示了节点的集合,以及它们之间的联系。这棵树从根节点开始,然后在树的最低层级向文本节点长出枝条:

 
 
  1. script language="JavaScript"> 
  2. <!--  
  3. var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")   
  4. //加载文档  
  5. //doc.load("b.xml");  
  6. //创建文件头  
  7. var p = doc.createProcessingInstruction("xml","version='1.0'  encoding='gb2312'");  
  8.     //添加文件头  
  9.     doc.appendChild(p);  
  10. //用于直接加载时获得根接点  
  11. //var root = doc.documentElement;  
  12. //两种方式创建根接点  
  13. //    var root = doc.createElement("students");  
  14.     var root = doc.createNode(1,"students","");  
  15.     //创建子接点  
  16.     var n = doc.createNode(1,"ttyp","");  
  17.         //指定子接点文本  
  18.         //n.text = " this is a test";      
  19.     //创建孙接点  
  20.     var o = doc.createElement("sex");  
  21.         o.text = "男";    //指定其文本  
  22.     //创建属性  
  23.     var r = doc.createAttribute("id");  
  24.         r.value="test";        //添加属性  
  25.         n.setAttributeNode(r);  
  26.     //创建第二个属性      
  27.     var r1 = doc.createAttribute("class");  
  28.         r1.value="tt";          
  29.         //添加属性  
  30.         n.setAttributeNode(r1);  
  31.         //删除第二个属性  
  32.         n.removeAttribute("class");  
  33.         //添加孙接点  
  34.         n.appendChild(o);  
  35.         //添加文本接点  
  36.         n.appendChild(doc.createTextNode("this is a text node."));  
  37.         //添加注释  
  38.         n.appendChild(doc.createComment("this is a comment\n"));     
  39.         //添加子接点  
  40.         root.appendChild(n);     
  41.     //复制接点  
  42.     var m = n.cloneNode(true);  
  43.         root.appendChild(m);          
  44.         //删除接点  
  45.         root.removeChild(root.childNodes(0));  
  46.     //创建数据段  
  47.     var c = doc.createCDATASection("this is a cdata");  
  48.         c.text = "hi,cdata";  
  49.         //添加数据段  
  50.         root.appendChild(c);      
  51.     //添加根接点  
  52.     doc.appendChild(root);  
  53.     //查找接点  
  54.     var a = doc.getElementsByTagName("ttyp");  
  55.     //var a = doc.selectNodes("//ttyp");  
  56.     //显示改接点的属性  
  57.     for(var i0;i<a.length;i++)  
  58.     {  
  59.         alert(a[i].xml);  
  60.         for(var j=0;j<a[i].attributes.length;j++)  
  61.         {  
  62.             alert(a[i].attributes[j].name);  
  63.         }  
  64.     }  
  65.     //修改节点,利用XPATH定位节点  
  66.     var b = doc.selectSingleNode("//ttyp/sex");  
  67.     b.text = "女";  
  68.     //alert(doc.xml);  
  69.     //XML保存(需要在服务端,客户端用FSO)  
  70.     //doc.save();      
  71.     //查看根接点XML  
  72.     if(n)  
  73.     {  
  74.         alert(n.ownerDocument.xml);  
  75.     }  
  76. //--> 
  77. </script> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值