javascript操作xml文件综合实例
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>
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>