12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.5k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript> ' E/ y" [# }' u- t! d4 e
<!-- ) M! L) f9 ]% m
var doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom)
( O" W5 |1 [- W+ `: V8 A+ x//加载文档
6 h' K: u" V6 J) \//doc.load(b.xml); 8 k; O0 C' p+ n- ^2 W; {' W
//创建文件头
) X. k% H; j; a# ^var p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312'); 1 N# {9 l" Q' j/ L' \& ?; D! G
//添加文件头
' B: \' }5 D5 }doc.appendchild(p); 2 }" v0 ]; ]- L: u
//用于直接加载时获得根接点
( R: t( |* t) ?/ |% W' P5 s0 G5 p& Q//var root = doc.documentelement; ! o0 H. P+ v- ~0 N
//两种方式创建根接点
9 x2 c( c4 X- x! b" \// var root = doc.createelement(students); 3 E( b1 W1 Q7 i
var root = doc.createnode(1,students,); - w0 _5 b4 K: Y$ q0 h. _$ U
//创建子接点
( e: b) K6 J: }. |var n = doc.createnode(1,ttyp,);
+ N4 C: B  c8 C6 C$ ~1 {; h//指定子接点文本 ; ]! P' W% c8 L- |1 A$ X% R' v
//n.text =  this is a test;
% G7 R( \' s% I/ }8 t' I& P//创建孙接点
; M" R3 d! c1 E# A; bvar o = doc.createelement(sex);
5 \1 f$ c+ s& ~, O5 fo.text = 男; //指定其文本 7 I  {2 a  R! H3 A+ n& j
//创建属性
1 B9 g; [' C& M- L" `, W; Uvar r = doc.createattribute(id);
- a  l$ A! t1 f& B* u( ^3 lr.value=test; , f) L7 f8 \' Q8 L" u
//添加属性
/ u+ k( Q8 h& N& N. Zn.setattributenode(r);
  J. i/ \( A7 W2 F//创建第二个属性 ! P7 k* `. P- C: }( r4 \8 B2 m
var r1 = doc.createattribute(class); $ Y' L4 r9 k3 z, l  x. W- ~
r1.value=tt; 7 h6 n* X6 z+ z8 Y( d0 S6 i9 Z/ A: j( ]
//添加属性
7 h( e) K# \0 r( d+ I& C7 ^2 Wn.setattributenode(r1);
7 o4 I! N3 {# H7 w  F6 t' m5 F//删除第二个属性
1 d, S( f: ~( {% nn.removeattribute(class); 5 t5 B5 k( z  G% |
//添加孙接点
. W- n. j* D3 h8 b* Jn.appendchild(o);
  g( I; H' A' k: B; N! p$ C& b//添加文本接点
: n  J$ P0 X" j) U( B3 S" Wn.appendchild(doc.createtextnode(this is a text node.));
  y  p# L% }4 k- P- E( ]//添加注释 ( P0 b, T+ Z, V+ h
n.appendchild(doc.createcomment(this is a comment\n));
7 R# ?# ?) N2 q9 d( s//添加子接点
: a+ {$ W# |/ H* \- o) Y' nroot.appendchild(n);
% [# C" W6 T3 z0 }& P9 J4 a  I0 G3 l, I6 D//复制接点 0 Q4 H, y( j5 O1 E" G' w  q
var m = n.clonenode(true);
5 E( M4 Z- k5 C, V9 Proot.appendchild(m); % L5 ^& |, D4 ^* i7 Y
//删除接点
% m: i/ U7 T4 }, B) n( Mroot.removechild(root.childnodes(0)); , ?5 e4 Q' G3 L4 Q3 U
//创建数据段 0 ^; q  o9 Q5 G' [4 d$ I. Y% T! m- m: ~
var c = doc.createcdatasection(this is a cdata);
- H4 k3 j' J/ ~- X$ j$ k  R# Cc.text = hi,cdata; / J" j' Z. B+ [9 O3 K
//添加数据段 * h" Y1 U9 q* \! n; u
root.appendchild(c); - e" p5 ^0 p5 j, w5 a" h
//添加根接点 3 I7 H8 b6 W* x% @
doc.appendchild(root);
& G. y- K) h. J, j//查找接点
3 o* g+ x7 G2 H& B$ R" Ovar a = doc.getelementsbytagname(ttyp);
+ O3 p0 B6 j  Q6 s6 M3 @//var a = doc.selectnodes(//ttyp);
0 a; D* U: W0 O1 }& a% i//显示改接点的属性
9 n- H, T7 M- ~# y; t. C- v; t: C) W+ zfor(var i= 0;i<a.length;i++) % _8 A3 V' N( T% J1 x/ m! X/ i' X
{ , _  B: J2 t/ m! N
alert(a[i].xml); , l4 k1 Q- B( ^5 ]7 t! ~! f
for(var j=0;j<a[i].attributes.length;j++)
1 z# v. }5 p, l' e" y: F{
8 o; `" w( o0 b) A. ]alert(a[i].attributes[j].name); ' u8 k6 p/ ^" R' B$ i
} 4 }; [* M4 n# _% P0 @' |  T, j
} 2 W7 u. {/ g$ }8 R
//修改节点,利用xpath定位节点
* R; H. l4 ]4 ?( Mvar b = doc.selectsinglenode(//ttyp/sex); & E$ j4 A0 n! @* F7 g4 p6 z
b.text = 女;
" l/ t$ W: |8 X7 s4 h7 A//alert(doc.xml);
, l- ^7 D% J! G3 Y0 R//xml保存(需要在服务端,客户端用fso)
7 R' @9 E& ^5 F" ^& P* g8 S//doc.save(); 8 L# V( _+ F' G2 G$ y* W
//查看根接点xml 1 p  |: P' ^1 b8 ~
if(n) ' z/ J' ~+ R/ W2 f, f9 ?
{ * U( [9 @) Z1 P; h+ \
alert(n.ownerdocument.xml); ; j1 f# n( p( H4 E. v* s# a
} 6 G8 X- {; \+ W
//-->
( {, D2 P' s! _( @+ M</script>
4 R5 C8 q; d5 X; w7 E5 \  g& m. q% d) E9 g
更多网页制作信息请查看: 网页制作

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