12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.8k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript>
0 N; t. n: j* H<!-- 7 I7 Y+ R% M1 h+ R3 L: z6 J3 b
var doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom) 8 D) Q# [5 r: V  [( S. O
//加载文档 3 k' O0 T0 F1 e5 h
//doc.load(b.xml);
3 b4 \4 c. j: y. }//创建文件头
6 A# {4 f9 U: t/ k+ a8 |var p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312');
- Z9 j# A- f( k# i; H' T& @+ z//添加文件头 4 U2 l7 Y9 g/ k9 D9 j. r
doc.appendchild(p);
$ B1 F" s2 e) p* L( t, ^. z3 U//用于直接加载时获得根接点
# D& ]6 S7 A* u* q, t4 `2 A: t/ W" b//var root = doc.documentelement; 9 [, |; R0 y3 V6 d6 k  s
//两种方式创建根接点 + n' B- u5 I# T# _4 T# f
// var root = doc.createelement(students); 4 W" s- z1 F1 v. P4 c6 Z5 n4 N
var root = doc.createnode(1,students,); - _% [; o" q: r: f: L4 @1 b# D/ h
//创建子接点
( B2 Q' S3 H4 A# R, \0 X# S2 z- Jvar n = doc.createnode(1,ttyp,);
& d) s6 G- ]5 o$ G$ I* `% y6 e//指定子接点文本
8 S( v! y& F/ l3 |) ?//n.text =  this is a test; 2 |# J0 l3 B  R4 `: j/ E- o
//创建孙接点 8 o, g1 z! t* H) u( t7 @4 Z9 Y
var o = doc.createelement(sex); . q; \! v8 m' A. D1 O& \8 J
o.text = 男; //指定其文本 5 N! D! K; ?! b0 H4 E
//创建属性 # n: v9 D8 N5 H. H' g
var r = doc.createattribute(id); ; p0 I3 X3 V3 r6 I" i# G9 U% W5 c
r.value=test;
1 D8 c9 [! k$ \& ]//添加属性 - V- D! C. K: D
n.setattributenode(r); , s: ?2 b# Q  u, Y1 ]
//创建第二个属性 - C9 e& U) J# X1 c  f
var r1 = doc.createattribute(class);
- J2 n! o, i+ J! Q: x. i1 k6 Nr1.value=tt;
: i  r5 q. g, v" u2 s% R* O//添加属性
4 }7 {' [4 x, c& W- ^: Z& j; Rn.setattributenode(r1);
8 G7 I0 I4 I* ?//删除第二个属性 8 H3 ?6 U$ ^5 }; @' U) H3 }0 ?
n.removeattribute(class); 9 H; u/ x4 t* A& ^+ V- B: H
//添加孙接点
; Y0 @7 @5 W9 l& F' gn.appendchild(o); 6 p* z' n4 U, P$ X
//添加文本接点
7 e8 }5 g9 f% a2 ~n.appendchild(doc.createtextnode(this is a text node.)); - D5 V! ^* Z: q* k/ @
//添加注释 . E9 P2 N6 I& m8 w, q- O' S3 f
n.appendchild(doc.createcomment(this is a comment\n));
% G6 _6 c" {, I, C# g7 ~//添加子接点
8 F6 J0 _: _9 Z$ ?root.appendchild(n); 0 p- h: @4 h8 E9 Y
//复制接点 . b/ {9 x+ n  W$ c7 r
var m = n.clonenode(true);
7 C. H, s+ o3 |/ Q0 ~' yroot.appendchild(m); 7 c- t& v+ b; Q7 ^: F0 N+ S4 @$ f
//删除接点
& g% `/ l% u4 f0 a" Troot.removechild(root.childnodes(0)); 3 g5 z% Y2 c" s' C% [* Z. ?3 y
//创建数据段
  z+ J8 \/ r8 h1 @) u1 |var c = doc.createcdatasection(this is a cdata); ; ?$ T* ~/ U5 _/ i( Q" z6 g% j
c.text = hi,cdata; " _/ S8 ?& L3 j5 \! f
//添加数据段
: T9 f5 C9 [. y7 A& R& Qroot.appendchild(c);
, m, y- o3 z. z$ s' K//添加根接点 2 ]( `* i1 b4 L+ g# v8 n
doc.appendchild(root);
' w6 `% ^: {# W* W4 r, k( k  \//查找接点
' |6 G4 j6 s  |4 }var a = doc.getelementsbytagname(ttyp);
# R/ _) n6 Y; T; E) {2 I//var a = doc.selectnodes(//ttyp);
) P& L" n5 O5 y$ g//显示改接点的属性
% A6 E: q7 f% b8 Xfor(var i= 0;i<a.length;i++) 9 K! o) z& m! n& ^( q
{
7 s' L8 ?% ?, w% `2 r1 {alert(a[i].xml);
4 t; ~! |4 W7 k4 a  X! o2 tfor(var j=0;j<a[i].attributes.length;j++) * }5 _' A9 c+ H7 C7 x
{
: p  ~  ]1 S  U% f0 U; palert(a[i].attributes[j].name);
* z' G4 Q" A/ Y6 Y1 x} % ]# J% z. d$ _
}
- w" m; ~4 V8 f' ^3 y) l, J2 c' K//修改节点,利用xpath定位节点
. k* o) `3 Y$ T" c; j" D9 fvar b = doc.selectsinglenode(//ttyp/sex);
9 z  D. s% Y8 {1 Gb.text = 女;
# l% U  o% Z- h: q1 T. a2 f: Z" X* q//alert(doc.xml); % K9 k0 |! o) \5 |" u: M
//xml保存(需要在服务端,客户端用fso) 3 X, g  Z: k3 j! `
//doc.save(); " g# T1 v$ t7 C* e
//查看根接点xml
: c. g/ o- W' a/ g, Y( v. t8 Sif(n) 9 v$ A$ K  f0 b) k
{
- R# C% j: i# Z0 Y# A' Xalert(n.ownerdocument.xml); - U% L& N! G: p  B0 Y9 i
} 9 I1 m. V. ^. a- O. b8 e, c
//--> % l5 g+ f% Y: h. G1 ?/ U- l
</script>9 ?  L8 B& m& O
( N+ x/ j$ V! ~" A" j$ Q' D$ \
更多网页制作信息请查看: 网页制作

回复|共 15 个

seazvyt 发表于 2015-12-3 14:44:01|美国 | 查看全部
看完楼主的帖子,我的心情竟是久久不能平静
wwdu926a 发表于 2015-12-3 14:43:39|美国 | 查看全部
来电来函..欢迎洽购...
alapScady 发表于 2015-12-3 14:43:15|Reserved | 查看全部
我怎么说那?~!
buingeEvineus 发表于 2015-12-3 14:43:44|英国 | 查看全部
呵呵  我傻了‘~~哈哈
tohme 发表于 2015-12-3 14:44:06|美国 | 查看全部
什么啊
Acropozelan 发表于 2016-2-17 20:24:27|INNA | 查看全部
真的 好久都没有这么笑了~ 好开心哦
alapScady 发表于 2016-2-17 20:22:51|瑞典 | 查看全部
系统居然怀疑我灌水,我身边又没有水龙头。哦…明白了,身上有一个……
effoggikeftor 发表于 2016-2-17 20:23:13|美国 | 查看全部
哎 我我我怎么办啊??
tohme 发表于 2016-2-17 20:23:38|日本 | 查看全部
一骂人就激动....
gevaemaidovef 发表于 2016-2-17 20:23:01|俄罗斯 | 查看全部
一个个全都骑到老大头上来了...
mwxny 发表于 2017-4-11 13:48:30|美国 | 查看全部
只是本着“看贴(虽然看不懂)回贴,利人利己的中华民族优秀传统美德”,顺便赚点积分。
alapScady 发表于 2017-4-11 13:51:43|美国 | 查看全部
假如我们把自己力所能及的事都完成了,我们会真的令自己大吃一惊。
tohme 发表于 2017-4-11 13:52:53|INNA | 查看全部
来电来函..欢迎洽购...
Mqokjdvq 发表于 2017-4-11 13:47:45|美国 | 查看全部
我怎么就踩不死你呢??

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表