wucf2004的博客

asp.net和ajax
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

javascript操作xml文件综合实例

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

 90    }

 91
 92    //修改节点,利用XPATH定位节点
 93    var b = doc.selectSingleNode("//ttyp/sex");
 94    b.text = "";
 95
 96    //alert(doc.xml);
 97
 98    //XML保存(需要在服务端,客户端用FSO)
 99    //doc.save();
100    
101    //查看根接点XML
102    if(n)
103    {
104        alert(n.ownerDocument.xml);
105    }

106
107//-->
108</script>