javascript操作xml文件综合实例
3
var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")
4![]()
5![]()
6
//加载文档
7
//doc.load("b.xml");
8![]()
9
//创建文件头
10
var 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>
var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM") 4

5

6
//加载文档7
//doc.load("b.xml");8

9
//创建文件头10
var 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
//查看根接点XML102
if(n)103
{104
alert(n.ownerDocument.xml);105
}106

107
//-->108
</script>
浙公网安备 33010602011771号