12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.4k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript>
' P- F+ I$ i+ X% P<!--
0 `2 @$ _/ t* _  fvar doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom) / c, @( Y7 p. b4 ~/ `+ m
//加载文档
" K, Y' d  G/ r' V0 p& x$ F) N. p//doc.load(b.xml); " n$ X$ Y) w# r1 _' q
//创建文件头
1 u0 A4 T) ]* x# }var p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312');
& ~: S8 p' P6 V9 c( t0 C//添加文件头 ) I/ K7 B  L4 }
doc.appendchild(p);
0 q; k( T4 D8 K8 w" R//用于直接加载时获得根接点 ; j& S) ]1 [  t9 Q2 t
//var root = doc.documentelement;
6 _9 K$ P* E! b# e6 U* V//两种方式创建根接点
' U) X# b! v/ w0 C8 D// var root = doc.createelement(students);
, k+ {: r) o9 h- j# b5 r8 tvar root = doc.createnode(1,students,);
& v. I4 Q3 [  f( n9 O' @//创建子接点
9 X& \! W1 g) i% Q; U- ivar n = doc.createnode(1,ttyp,); 7 X9 G% {- u' @1 c2 X1 m# P5 B8 e$ G
//指定子接点文本 ; g5 q4 i$ D& F( s3 [
//n.text =  this is a test;
* b; j& E( U+ C- J//创建孙接点
3 P7 Y3 |/ B8 P& Z% A: avar o = doc.createelement(sex); % T# Z2 s6 _* K0 v% y5 g  f
o.text = 男; //指定其文本
$ a( i- y  h* q1 l# O//创建属性 % M9 c" C1 v0 U  l% L9 y' b; e
var r = doc.createattribute(id); & ]% h9 o9 `+ ?( D0 b7 r
r.value=test; 4 N0 V! ?/ X  o$ I! \) F8 _* b  P
//添加属性 3 `& U3 V& a( l' H
n.setattributenode(r);
( ~" [9 R9 j; g9 o2 g//创建第二个属性 6 r5 O1 p& U8 p7 Q1 [  m" o
var r1 = doc.createattribute(class);
: u) z: u2 V! S2 E' \r1.value=tt;
" J. Y& V) m( J4 L5 k//添加属性
! @3 z: Y, D" n/ K" ?3 d# }' Pn.setattributenode(r1); - w  i1 T' K  ]6 T4 M
//删除第二个属性 3 J# Z7 q" r8 s
n.removeattribute(class); 6 x  a$ B/ h5 m$ `
//添加孙接点
6 c% D) j. f% V* V7 yn.appendchild(o); , T$ t5 p1 _- h+ b8 m* Y5 d6 p% p
//添加文本接点 * Y, W. a; Y/ Y! r
n.appendchild(doc.createtextnode(this is a text node.)); 5 `7 L6 H! a+ O3 f/ i
//添加注释 * F9 K  x4 p' f  _" x: E. m! I3 y& T
n.appendchild(doc.createcomment(this is a comment\n));
/ J8 o$ O. C; y7 Z( i0 ~# o8 W//添加子接点
- g( z6 M' Q4 j6 S! \root.appendchild(n);
. s! |% l& K0 L2 m  ^8 m//复制接点
1 K" `# B! V, y! O3 u- J: ~, b3 b, Mvar m = n.clonenode(true);
1 }# S0 _/ D) P5 R  K1 croot.appendchild(m); 3 [/ u7 b9 @! F5 n! K0 A
//删除接点 ( ~9 D; K1 T5 P2 ?% ]0 F
root.removechild(root.childnodes(0));
0 ], v4 S# ^" @: d! G1 |//创建数据段 & f& [6 {8 I5 j& y. Y/ q* g
var c = doc.createcdatasection(this is a cdata);
, t7 }$ e% u* U" i. X" I" j+ l- P; ac.text = hi,cdata;
- W+ }' F' r3 q$ e//添加数据段
, q0 a; Y" {: D: {  `9 f/ c! N/ s8 Lroot.appendchild(c); % P  C" I: N9 P4 n+ l) V2 C, {
//添加根接点
6 G2 d/ `  M/ `' A: [doc.appendchild(root);
$ K4 I4 L+ R+ {" a. t- E' z//查找接点
: r8 h! R" V! R; B7 mvar a = doc.getelementsbytagname(ttyp);
! K. ]: ^" j, p* a& L3 z1 |//var a = doc.selectnodes(//ttyp);
6 ^2 s! Y$ l' i& A; `) H//显示改接点的属性 1 q0 j  L2 i  W) {
for(var i= 0;i<a.length;i++)
7 j" ^$ q% I, U/ }" w  Q{
: n+ [9 f) M1 K  galert(a[i].xml); 3 a$ j: e1 R4 U
for(var j=0;j<a[i].attributes.length;j++)
1 z" }" \  |! Q1 ]1 O( h/ F, }2 A{ 8 _. `3 z- B5 a) `5 N2 g) `4 [5 t( k
alert(a[i].attributes[j].name);
: t( K& F: s+ k3 S+ ~5 [; b$ O2 ~}
5 h! }- J5 L" }/ R5 P}
1 q* J7 M: g$ _9 e. d- b: f//修改节点,利用xpath定位节点 ) M6 u7 `' M3 x# @: H& X: X6 Z
var b = doc.selectsinglenode(//ttyp/sex);
2 I0 Z+ x& M! k6 V6 gb.text = 女;
  i1 Z. C7 d' l5 k1 w//alert(doc.xml);
' c$ w/ g$ f5 ?! R//xml保存(需要在服务端,客户端用fso)
1 Q- ~! N' f0 k' l+ I//doc.save();
( h/ i( y/ m/ ~% D$ E5 D//查看根接点xml
, _. D  `. }8 `if(n)
) r  L+ _. X* _! X& i{
7 A6 L+ l. o+ Falert(n.ownerdocument.xml); . d- c- e( X/ n3 c
}
- ?3 U! N1 o; S* {//--> # ?4 y+ w) N* q- V* O. M2 d
</script>1 f3 x# l- v2 j+ b

; ?# G6 b; K* X0 r更多网页制作信息请查看: 网页制作

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