12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.4k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript> 7 ]- E( w$ j* |# y8 l
<!-- + [" W) B* ^! u: R& m( ^! L0 o5 Q
var doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom)
* L) U  s  M% C6 o  `7 c) z//加载文档
* h7 N/ R; |& T//doc.load(b.xml); 1 ^4 b, ?0 N9 _% Y6 D+ U0 E# M) y
//创建文件头
% W% b+ K; l/ q4 r, Z" z2 E% pvar p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312'); , p% P$ E  S& r( [; w
//添加文件头
8 P  `8 q* G, V! i- Cdoc.appendchild(p); . S  J5 d2 `7 ~
//用于直接加载时获得根接点
/ S, u8 x. q5 Y/ p$ Y" }//var root = doc.documentelement; 0 P( y, P# E, C5 d7 i9 k
//两种方式创建根接点
: J0 n1 T/ m0 x8 q8 I// var root = doc.createelement(students);
8 ]0 R/ p9 f% l% E. k# B  P5 D  R* S8 svar root = doc.createnode(1,students,);   d% J3 ~+ D/ G+ S4 k. @( |  b
//创建子接点 . l- E5 v8 r9 }0 ^- |; P$ o& s+ M* y
var n = doc.createnode(1,ttyp,); , \1 T; |& c' x+ H) }; ?6 o
//指定子接点文本
7 g& S4 g' h& T# G" G//n.text =  this is a test; 8 \: G$ v2 f! _# _; H
//创建孙接点 0 n7 @" J/ z$ }1 s( X- E9 z
var o = doc.createelement(sex); 0 S$ }# T! c2 p# T1 j
o.text = 男; //指定其文本
7 b7 s* ^$ V9 D; `' u//创建属性
1 H* ^- ?  ^1 T" F  Cvar r = doc.createattribute(id);
5 X/ y; l. |' w) z0 h' W3 t; p$ ar.value=test;
6 J* Z+ W0 M! k//添加属性
8 O$ ?/ R1 {- }% X4 Sn.setattributenode(r);
* x2 E, T1 n3 q//创建第二个属性 8 W4 P5 ]' y, `3 w2 E0 G
var r1 = doc.createattribute(class);
' M, l$ v6 A8 nr1.value=tt; 5 q+ y( U* I% Z- r9 z
//添加属性
2 M1 A/ C7 d- p' N' Y$ M. \* I9 Nn.setattributenode(r1);
# R0 Z6 v% q$ Q0 c# A$ P* h9 [//删除第二个属性 ! L2 A; O9 L9 z2 U7 z
n.removeattribute(class);
4 R2 O/ s; ~: C" l3 l1 H//添加孙接点 $ ~5 w2 ^8 g/ w, H  x. z5 `
n.appendchild(o); 1 ?( W, v3 G( O$ `8 j0 g
//添加文本接点 & z, D* F+ m: G
n.appendchild(doc.createtextnode(this is a text node.));
1 J" G" q0 d6 _( O* @& q- v//添加注释 6 A. b& _" U# p. e: }0 o- p
n.appendchild(doc.createcomment(this is a comment\n));
, W  y, a" X, S; ?3 @/ M- L//添加子接点 9 v) b4 z) q* Z" M: O2 y- v6 S
root.appendchild(n); 9 G. u) R# P, v: T, M6 j. o$ w) _
//复制接点 + _. A+ \! F/ n+ J3 }# [( x
var m = n.clonenode(true); 1 a- w' h: n# f3 t6 W3 T$ B
root.appendchild(m); ) _( [* F0 z' h! Q  n
//删除接点
, E$ p7 [( z( F6 k; Y3 C* f# Uroot.removechild(root.childnodes(0));
. O: K1 a6 s; I+ Q# V8 w: C//创建数据段
: \4 w4 M5 d" `+ D8 ]var c = doc.createcdatasection(this is a cdata);
- S, ^6 `7 _5 ]9 {c.text = hi,cdata; # F* p4 R. U& F) n, ~; X
//添加数据段 ! J" ]: s/ T4 q, }* R3 y- n
root.appendchild(c); 3 R  r/ q0 C& y& Q- O, O! ]/ Y
//添加根接点
5 a7 Q5 r; m; e6 R+ P" zdoc.appendchild(root);
: F3 a. ^/ k( e6 A//查找接点
0 @' ^# K1 Q1 r$ Fvar a = doc.getelementsbytagname(ttyp);
8 L) H  C; U0 H//var a = doc.selectnodes(//ttyp);
! E3 A) W% u7 ]. [9 U4 p2 X* w! k3 T//显示改接点的属性
0 y7 i" D3 \* y; T. A! wfor(var i= 0;i<a.length;i++)
1 H# U  `. X) l{
" ^" @  S% M* N  O3 Falert(a[i].xml);
% O; r% O/ K- j& z* P3 efor(var j=0;j<a[i].attributes.length;j++) 7 n0 R0 ~9 x1 Z& ~" ^
{ 2 R3 @" F3 G) C
alert(a[i].attributes[j].name);
# f; M. P$ D% `+ J( }! \+ ]) j; V} 3 t0 A$ P( g- r  m% q
}
" r# k/ G7 R7 T7 N//修改节点,利用xpath定位节点
2 t* |- b1 X" I5 n" q* E3 qvar b = doc.selectsinglenode(//ttyp/sex);
  q/ o& e; U8 gb.text = 女;
# }: s1 X* ^6 k1 l( M. H$ V" l* e//alert(doc.xml);
; d1 N2 t2 n  u//xml保存(需要在服务端,客户端用fso) & i: }% I' I$ i9 r$ \: X% \9 `
//doc.save(); ) r. U* G( n, A& g* V: a- }
//查看根接点xml
0 Y$ }2 s5 N3 p5 w: ~) T) \if(n) 0 H$ g( E6 k' n
{
5 g# T) w" b& u$ m+ p3 Balert(n.ownerdocument.xml);
7 }$ d. |' r! f2 L; x/ C4 |9 d& I}
' ~2 Q6 }/ u2 K- M9 M4 ~& B0 B//-->
4 T- |& B) f0 b$ I</script>
6 d& k& D* {0 Q3 i$ `/ O" M6 a3 u" U# }4 c
更多网页制作信息请查看: 网页制作

回复|共 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技术交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表