12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.7k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript>
( y6 w& d7 h, r4 A<!--
; q, [" g7 I' i% ~" @) P0 f4 wvar doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom) 7 o( |" u* G0 J( I) l6 E/ H0 K6 Y7 z
//加载文档 ' N. p# V, _# ^" |
//doc.load(b.xml);
2 y! Z+ v$ H% m6 \0 h3 h) ~//创建文件头
" l& I5 D4 s0 Qvar p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312');
  s8 D/ [# F( p1 m0 V//添加文件头   N. b/ D9 o" ~$ c7 }3 Z5 y
doc.appendchild(p);
7 R6 S* D  ^% i, P! B: q//用于直接加载时获得根接点 ( M4 I2 [$ e7 Y$ F- A$ S- X
//var root = doc.documentelement; ' s7 g7 F% H& j% \" l9 ^0 @
//两种方式创建根接点 ' {' N$ J% U" [9 [6 G$ D" x
// var root = doc.createelement(students); & T& A% e0 P1 j8 t3 i- k; C2 @. n
var root = doc.createnode(1,students,); # d) L& M: \2 U. r) K/ a+ m
//创建子接点
* ]# [& P' X" e0 @& [$ ~! Y: i% }var n = doc.createnode(1,ttyp,);
6 K- {; i" z5 {7 W//指定子接点文本 $ z8 q4 B, A. N6 x+ B
//n.text =  this is a test; 9 j4 r. V" }3 ~1 o" G1 N
//创建孙接点
/ y: i5 _9 m2 }0 z, ]var o = doc.createelement(sex);
  r9 y: @* I5 `7 K. W1 G* f% M' q/ Uo.text = 男; //指定其文本   K+ M1 c3 a2 r" `- {
//创建属性 9 @3 [6 D- ]6 d5 ^: x% |
var r = doc.createattribute(id);
3 j) }4 F& _2 `' g; h9 p  nr.value=test; ) d, P5 _. G6 k$ s' x3 M- v( b' o0 K' g/ h3 E
//添加属性 2 |/ i2 V7 b# `6 |8 w7 A/ z
n.setattributenode(r);
# p& E  [% ~* R; q+ `//创建第二个属性
5 q" m$ |( n! o4 Ovar r1 = doc.createattribute(class); 3 k* m/ c" j8 `& g7 h" _
r1.value=tt;
6 t5 y" p( b* K' q' q, q//添加属性
+ ^* o# f# S6 S/ o) X3 O. rn.setattributenode(r1); 3 r' p$ r; C2 m4 T5 j* J/ D
//删除第二个属性
5 q0 g: n; x* @/ ]0 M" fn.removeattribute(class);
: W2 Z$ l) {, n0 {; U//添加孙接点 - _% ^9 O! k. ]( c/ ?7 G
n.appendchild(o);
9 f. K& K7 t# b' w8 ?( A7 u6 H//添加文本接点 % M2 w  R4 W# r' e  P
n.appendchild(doc.createtextnode(this is a text node.)); ) L) d9 r( F' z% E5 L" U
//添加注释 * `; v8 ]' Z& e" t. _2 d
n.appendchild(doc.createcomment(this is a comment\n));
# r) Y+ H2 w7 `9 b3 K//添加子接点 0 b/ @/ a6 e- F; d5 J
root.appendchild(n); . y9 ^  Q9 @8 h0 ^: H9 {. V4 v5 n
//复制接点 / V( a9 j6 n8 ]& G9 a2 A- Z6 u
var m = n.clonenode(true); 4 P# H4 S4 L# w; i2 |( ~6 i. F  N
root.appendchild(m); & @3 ^9 d  ?; R: |
//删除接点 2 E, b! {: m  j1 S
root.removechild(root.childnodes(0)); 7 `4 \! E8 F. I3 Z& T* Z
//创建数据段 4 D8 g& T- ?/ A% B( p
var c = doc.createcdatasection(this is a cdata); $ a2 @# a% _) A
c.text = hi,cdata;
4 S- l$ \  r/ O! Q//添加数据段 . o2 f9 O' c3 K
root.appendchild(c); , R; {( n  g% I7 j  s7 l, V
//添加根接点
8 H5 x. @; Y& L& s! v- Cdoc.appendchild(root); 7 K' o) m/ R- e3 E( Q& R1 l$ o
//查找接点
* a0 X! H1 s9 o. ^; mvar a = doc.getelementsbytagname(ttyp); ( m0 M6 }2 T! n* V! [- N' ?& f
//var a = doc.selectnodes(//ttyp);
6 w  b& n) n2 ]//显示改接点的属性 8 x- @9 j7 E/ x
for(var i= 0;i<a.length;i++) ) s+ H. q# {4 \6 Y6 P9 q! B
{ " b3 C. p% K! _. F7 m0 b
alert(a[i].xml);
7 l' `9 B8 t6 a# [for(var j=0;j<a[i].attributes.length;j++)
0 Y! h  J& _" O/ u# h8 \% j{ ) O! ^' V: J5 @! P  I, C) [0 F) L
alert(a[i].attributes[j].name);
/ T1 R! O* T1 i' \2 s: w} ' I6 X+ f' E3 E5 U, v5 l+ P% D
}
4 R1 b$ i  A, L: z2 W5 K9 ?" L//修改节点,利用xpath定位节点
7 v. ~# o# w# t  ^var b = doc.selectsinglenode(//ttyp/sex);
' T2 Z- d5 b, w" S0 E2 g+ ?* h* r7 Pb.text = 女; & }: @5 Q. K, E$ _; }4 c: p
//alert(doc.xml); 3 O' j$ |: [& t6 U% i6 }9 C( e1 @0 g
//xml保存(需要在服务端,客户端用fso) 5 Z% K+ o, P/ v* s1 w
//doc.save();   z( ~4 S8 D) b* W$ u1 d
//查看根接点xml
3 W+ a0 S  o7 bif(n)
& s* d# ^* u! ^/ O. A* z6 n& R{
' a1 e& V! @& w' _* w6 Galert(n.ownerdocument.xml);
8 P: e+ }+ f3 r* Q2 Z; [; O7 ~0 l}
$ m" L: r3 U. O, E$ F//-->
& ]5 \) h; y/ R, s</script>) |! W/ v6 ~8 H

( y" z' t- {  ~0 T( x更多网页制作信息请查看: 网页制作

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