12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.8k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript>
% ?9 l( K* a) ~) e! z3 h% p, n<!-- 8 P3 j3 _+ L/ m3 I
var doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom)
7 n9 T4 u! e. _//加载文档 ; b! _$ N1 z7 U2 |1 h
//doc.load(b.xml); 2 h' w, c; \4 e
//创建文件头 9 m2 m& d9 P/ i0 Q0 y4 Z5 H  `0 s
var p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312'); ; M; Q  A  y7 U; ^+ |& a  \
//添加文件头
3 Q/ B( `' U  H1 `- \: cdoc.appendchild(p); % S, p& e3 F$ J7 U1 Y) Q* P2 F
//用于直接加载时获得根接点
/ |5 f& ]! a4 {% ?) |% w//var root = doc.documentelement;
' O2 g8 g3 n9 |) e//两种方式创建根接点
! {3 ^1 K: M+ j  Z// var root = doc.createelement(students);
/ N9 m9 _2 G5 W" p1 B! Tvar root = doc.createnode(1,students,);
6 L9 y4 k/ K9 O# U: J3 ~//创建子接点 ; R( v% |3 u$ Z9 p4 }
var n = doc.createnode(1,ttyp,);
; q6 d% M' Z* O% n5 V: [* g( O//指定子接点文本
( m+ W- S& `3 i3 N//n.text =  this is a test;
/ A3 f& j6 Y+ O3 f6 v7 y1 f//创建孙接点
) C. s# `$ _0 r' d$ U! vvar o = doc.createelement(sex); 4 c, G5 N% [/ N2 j3 B
o.text = 男; //指定其文本 0 O0 H" u+ L1 a( v
//创建属性
  a5 v1 K  M- u+ P! Z& i, @var r = doc.createattribute(id); 0 h1 d: d8 n0 a( S9 ]" G
r.value=test; ! O8 o. ]3 x5 r
//添加属性
7 G) _" w5 c& C( ~" L+ hn.setattributenode(r); & @; R; U1 V$ h0 W* p: [9 v7 d
//创建第二个属性
, B' a9 H" e% G9 N" T0 I- X9 _. Wvar r1 = doc.createattribute(class); / p$ f. u3 G  O  h# l6 |
r1.value=tt;   J3 `1 R8 V, d& C
//添加属性 2 L' P. R! }0 I4 p. o
n.setattributenode(r1); $ M+ t$ f: i1 a6 |! e/ n3 b
//删除第二个属性 8 w' D8 E; O9 Z8 C5 c7 b
n.removeattribute(class); ! w0 l9 T8 x1 ]7 f: C
//添加孙接点 8 P' \5 P9 X. R2 d" c" {8 J
n.appendchild(o); " n; P3 Q6 v; R
//添加文本接点
9 k6 t0 J$ j: l+ N4 ]2 d, {- S2 in.appendchild(doc.createtextnode(this is a text node.)); 1 b3 l; ^$ u/ U9 S  {
//添加注释   _' Y8 o0 A' ]
n.appendchild(doc.createcomment(this is a comment\n)); + `2 _0 Y+ `( c6 M
//添加子接点 7 I1 a& @2 i" {+ M7 r. q; d" W
root.appendchild(n); 8 B6 R- G8 G. r; R. `) [1 }
//复制接点 1 a; Z% N4 i! q) E7 F2 C8 k
var m = n.clonenode(true);
7 Y+ F3 T+ a& P9 g; `& [  D' ]) z/ a9 ~, Lroot.appendchild(m); 6 P4 {; R' ~% D/ U% U& g9 s
//删除接点 + i+ q& u; ^( w) }; b
root.removechild(root.childnodes(0));
% X5 ]4 j% x( w2 l! e//创建数据段 # e) [$ z5 F' S
var c = doc.createcdatasection(this is a cdata);
: c4 V6 a; g+ Y, Ec.text = hi,cdata;
, q* V3 a& t# }$ [//添加数据段 5 q) c' n' `0 w6 m
root.appendchild(c);
  ^& u/ O! H! N; U- u7 I% @& L! `//添加根接点 # Z! M$ U0 O8 k+ }
doc.appendchild(root);
  z5 h  H$ H' K4 S& z//查找接点 5 y, J$ V8 z+ h  N1 b
var a = doc.getelementsbytagname(ttyp);
  I( S+ V) }$ q: z9 V% F//var a = doc.selectnodes(//ttyp); % q5 [, ^4 @8 u  v
//显示改接点的属性
- p  J4 k& Z* C6 Q; ^3 H0 Jfor(var i= 0;i<a.length;i++) ! }' T/ A# m7 }  Z3 ~' V& W$ V# B
{
! |# F) V/ ?( G( l) p: a0 k7 ralert(a[i].xml);
7 E1 R  m* q( r; B0 _1 vfor(var j=0;j<a[i].attributes.length;j++)
9 V9 `1 A7 c# z4 s' {{ # o# I- f' {8 J. P" E* B
alert(a[i].attributes[j].name); ) J! s5 k( E' U7 E7 b
} 9 K8 O4 Q% G+ b
} * t: Z4 s- y  N1 P: I0 @4 S* d" j
//修改节点,利用xpath定位节点 7 m, Z& \9 t, S1 t8 L
var b = doc.selectsinglenode(//ttyp/sex);
0 N+ h+ ^( U+ z' ~& q3 pb.text = 女; - K+ U' A- c3 Y, [- P3 Q
//alert(doc.xml);
  q9 Q* N# F+ r0 h5 s//xml保存(需要在服务端,客户端用fso)
! [3 |8 ^' R" ?% c2 C4 e//doc.save(); " a. q2 g  x; D4 g9 H
//查看根接点xml 8 Y0 A; ]% u/ F2 n4 _( P
if(n)
/ c( M, ^# b; s{ 9 m/ v2 _4 a0 S8 }* w$ W
alert(n.ownerdocument.xml);
/ i- o& k$ c7 _+ ?} 4 G& v" x- U& f& ]
//--> ! b2 o8 P8 Z* T. x+ I  N' s' G9 h
</script>
+ t. |6 m5 d3 T6 f: O& h: q" @4 ^  L% ~
更多网页制作信息请查看: 网页制作

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表