JavaScript操作XML文档

来源:互联网 发布:女装正装品牌 知乎 编辑:程序博客网 时间:2024/05/22 02:12

一.读入XML文件

Js代码 复制代码
  1. <script   language="Javascript">      
  2.     var   xmlDoc=new   ActiveXObject("Microsoft.XMLDOM")      
  3.     xmlDoc.async="false"      
  4.     xmlDoc.load("note.xml")      
  5. </script>   

 
二.生成保存XML文件

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