12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.8k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript> 7 Y) b. S0 b2 G2 E# V  Y
<!--
) X; K) G: l0 f- v& D8 Evar doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom) ; ^( h& p1 O6 w* l$ Q
//加载文档
: i. y" `: |' j+ Y" Y. S7 q//doc.load(b.xml);
. @6 H' y/ @/ ~+ t//创建文件头
1 A6 M" H2 Z8 W5 Mvar p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312');
% T6 D7 Q0 F% v. d8 a. e//添加文件头
2 @, l4 U% S: |' Q: H2 Hdoc.appendchild(p);
. }1 y' D! Y/ N4 i//用于直接加载时获得根接点
5 F) U6 L1 l0 a# r4 {//var root = doc.documentelement; , P9 }3 k$ D7 W" `! Y
//两种方式创建根接点 ; y8 L: B3 P; V# x
// var root = doc.createelement(students);
! Y% V( q2 l) l" ^) rvar root = doc.createnode(1,students,); 2 y$ T# q9 U3 T' [1 S
//创建子接点 2 x& Y% \+ n& |* m, C# |$ q
var n = doc.createnode(1,ttyp,); / f+ y0 Y- ]0 E( ]4 a% }6 H6 N
//指定子接点文本
6 [/ G% k6 y/ q. U( N* U//n.text =  this is a test; 2 x7 ?  `' ]0 A3 M; P/ Q& J
//创建孙接点
6 F4 g, B$ P! {1 ~( C8 g/ n. K4 n1 ivar o = doc.createelement(sex);
* ?" l* J( l2 j% o) T1 i+ {9 N7 U" C& Xo.text = 男; //指定其文本 . P7 O) S/ l7 H, Y3 y% H, `- i: x
//创建属性 9 Q( i( K2 ]. v! P
var r = doc.createattribute(id); / |: I" U  X0 Y" J: h+ ?  x9 U9 g3 L
r.value=test;
# b& Z# g. v6 Y- |& T: e//添加属性 " ~. R' c# ?. b6 n/ i+ R- I
n.setattributenode(r); ; m  m! R3 q0 @* p+ ?9 [' e3 z! B
//创建第二个属性
5 r1 w) R  }& f' E2 z- s) ]var r1 = doc.createattribute(class);
/ E$ G# W3 \! H# O: @. Ur1.value=tt;
! Y8 e( k( ~5 Z9 J9 v5 \* n//添加属性
/ l, t& V3 W5 @; v' n- Sn.setattributenode(r1);
0 ?% l+ `/ x5 Z& n//删除第二个属性 ( J- D; l, P; ]$ {5 H
n.removeattribute(class);
# B) b  C) d. S//添加孙接点 + k( C9 @4 x' U: ?9 p
n.appendchild(o);
% D) `2 f+ k/ U' Z# z//添加文本接点 ( w5 _, S6 x* v6 Z7 o
n.appendchild(doc.createtextnode(this is a text node.)); ( c2 `7 o6 t8 B, \
//添加注释 " r+ g5 p- [* b  V
n.appendchild(doc.createcomment(this is a comment\n));
4 A$ O; K* ]( }5 f//添加子接点 6 z/ @& v2 @" @8 A/ [9 z+ I  n& t  A
root.appendchild(n); * R5 g+ @6 d& C7 q( G
//复制接点 : r* y/ O  t: N3 D" p7 S0 w$ t; Z- M
var m = n.clonenode(true); 8 l9 W+ N& B. K' D; {
root.appendchild(m);
2 d% |, |8 z7 i) u% u% J//删除接点
* S9 t3 _8 ?, Y2 Groot.removechild(root.childnodes(0));
* u: i! L/ U8 a4 n' @7 T1 c0 x$ U//创建数据段 6 t  a. m; G, Q/ E# m
var c = doc.createcdatasection(this is a cdata); 0 X4 B, |5 c2 f3 p! ?0 r
c.text = hi,cdata;
' `/ A! a: H1 i//添加数据段
  x0 T: k$ ?, a+ }( n' Q  Froot.appendchild(c); $ {* S. ^7 v# \7 k# [; y7 x5 ~% x
//添加根接点 * k" @7 d7 c( G9 Y# D: k
doc.appendchild(root); + C0 ^% U: a9 A! @1 h# c
//查找接点   [  H, R" `5 r$ [, @$ o$ X
var a = doc.getelementsbytagname(ttyp);
8 I% K) U. s7 W. y% k8 t5 p' X  R//var a = doc.selectnodes(//ttyp);   T- a" j8 G0 J  b/ \
//显示改接点的属性
9 m2 y$ H2 [% C, L& Sfor(var i= 0;i<a.length;i++) 4 K, M4 N3 J, ?# L
{
# F! j* \6 }  ]3 p: \, ualert(a[i].xml);
; d0 `2 r1 \' Yfor(var j=0;j<a[i].attributes.length;j++) 8 E2 m! C4 Q$ U, V
{ 2 E6 c- H& x# P. d
alert(a[i].attributes[j].name); : L3 @0 O! Z! j3 d8 @% Q3 x
}
4 l9 j) ]$ N5 y, L2 w* W} + {/ z8 x  H8 J! ]2 e; O
//修改节点,利用xpath定位节点 ' Y, w3 K) m; Z1 c4 C, C# }! Y! c
var b = doc.selectsinglenode(//ttyp/sex); ) |  a1 U3 X4 x* R2 y
b.text = 女; 3 Z# ]( I6 a, n. b; r( ?6 f
//alert(doc.xml);   x) Q  ]% P9 Q) l  y- X
//xml保存(需要在服务端,客户端用fso) 6 L. V0 J- }, Q; X  s3 @6 ^( A
//doc.save();   I# i/ T( @* C* d' H7 w6 L" [
//查看根接点xml - |1 l. z  m0 @( q% z/ r
if(n) & v, U, T7 e! X, i& r: d
{ 3 ^- Z. {0 w: h% Y! k$ u2 Z
alert(n.ownerdocument.xml);
7 U# u# b6 w5 b0 t. h}
2 J! R  N1 x2 ]//--> 5 B  b5 ^+ w5 G0 H$ f- \
</script>
! |; N0 J) `6 }* q/ F& ~! Y3 N( c4 m' K8 o* v7 T# Y, 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客服 返回顶部
快速回复 返回顶部 返回列表