12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.4k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript>
0 |6 U/ R9 j0 _  u& J# {- i4 k/ m<!-- $ A% R0 K( w/ I3 N& ?
var doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom) * T) w9 u$ `8 z, o/ q
//加载文档
0 e9 _: ~# Z8 f3 H! H& @% `1 l$ H//doc.load(b.xml); 9 l3 Q4 W# c! y4 L+ @1 k. W3 n8 G
//创建文件头 * k' D/ K, }7 A4 M, `8 y
var p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312');
2 r% |4 q  z$ ~) R# B) J6 C//添加文件头 # s" L& `! [( v
doc.appendchild(p); 7 t2 C* i/ [; N$ ]# o! r6 G
//用于直接加载时获得根接点 & @# v' J# Z# k2 @' B  A. P" Y# j
//var root = doc.documentelement;
; c, j  U2 q  {! M& J//两种方式创建根接点 8 Z" ]- \7 I' O* t) F$ f+ H$ F6 h
// var root = doc.createelement(students); " D7 u3 B# `9 K4 x
var root = doc.createnode(1,students,);
0 R5 _& T# |' a, C# B3 r) f//创建子接点
/ V' c0 Y. E. g6 I4 W+ w) ~var n = doc.createnode(1,ttyp,);
! M# a" W/ |3 w( b) s//指定子接点文本
% ]/ ]" u) q4 `//n.text =  this is a test;
4 y* D1 g) T( }//创建孙接点
8 s8 i; T+ S! v7 t1 _var o = doc.createelement(sex);
$ w* |9 B5 m1 u0 @" B( ro.text = 男; //指定其文本
  d& L0 _* K! g. R//创建属性
# u. y$ G/ l- d5 hvar r = doc.createattribute(id); 9 C# ?7 h* Z, Z2 i: J6 |, T
r.value=test;
& k4 ^7 R* |& V/ B* e//添加属性
, g/ h4 X$ `* En.setattributenode(r); & u  X" `6 f! J' A( w
//创建第二个属性
0 D' z0 l: k6 g1 z' i1 Rvar r1 = doc.createattribute(class);   z+ ?; p, p: ]% @# D/ b
r1.value=tt;
0 Q" [$ b  S. d# x& x$ y//添加属性 * J) s( p3 C9 p; `0 ]+ p. f
n.setattributenode(r1); ( P4 y( L! ~# l& B3 k$ {
//删除第二个属性
- W# s( F3 z& Pn.removeattribute(class); ' u9 V* i% q4 ?0 m
//添加孙接点
9 J# S7 y4 q& y1 V! v7 |' P& T0 o0 kn.appendchild(o); 4 P$ J6 w4 H/ s4 Y1 H2 P: ]
//添加文本接点
1 l. {: w3 X) Y! Un.appendchild(doc.createtextnode(this is a text node.));
; m0 ]! K" {* c/ Q+ i: [. |//添加注释 5 K: \% Q; I$ {; {5 v
n.appendchild(doc.createcomment(this is a comment\n));
+ H8 b" q  A% d  y4 `; W! w# I//添加子接点 ! ^7 ?1 v+ S& |
root.appendchild(n);
1 D+ V6 Q) N" Z//复制接点
% h% u/ Z) y$ n) h5 ]7 avar m = n.clonenode(true);
2 W! Q5 Q, I  f" P- @$ ~- {root.appendchild(m); ! x* u' e. K: K* ^# A6 F
//删除接点 1 g# `+ X+ h) K5 a3 B2 @% J% [7 f
root.removechild(root.childnodes(0)); 1 o7 S" S* P8 N/ |2 f% q7 _3 o' [
//创建数据段
+ n1 v+ v1 t- V7 c6 V; w" Gvar c = doc.createcdatasection(this is a cdata);
8 e) X! S0 u# ]$ t. L/ Rc.text = hi,cdata;
5 J/ s, y0 ^2 Z//添加数据段 0 j! A1 [; I6 z% d0 n( G
root.appendchild(c);
( F; n% X2 J0 Z; {1 ^- X1 K//添加根接点 1 `. [. {9 y1 f% c+ U$ T+ o; K+ `/ `
doc.appendchild(root);
$ \4 Y  m8 R5 J2 V. a  t1 E//查找接点 ( }  G) r5 [& e. l  i) L# [8 L
var a = doc.getelementsbytagname(ttyp); ) I. p  W! c+ r* X# ^
//var a = doc.selectnodes(//ttyp);
* ]3 [6 I8 X& D- y//显示改接点的属性
+ v5 h# |5 k% `  C& Q, Y' Wfor(var i= 0;i<a.length;i++)
7 U$ M* [3 l2 p* M* h" W{ 5 F2 s8 N% a& G
alert(a[i].xml);
9 G2 p  e5 @1 Y: jfor(var j=0;j<a[i].attributes.length;j++) ) Y, F0 b4 D! S3 u$ l$ W. S- ]
{ 1 Z% x4 D4 N/ B  {4 O
alert(a[i].attributes[j].name); 0 w+ i& I, ]( g, b) n: o# C
} ! G3 l5 C5 X. E* r( m9 }1 U
} : T/ L- s0 j: n! p5 X5 `1 z/ n
//修改节点,利用xpath定位节点
/ z) w, a$ c. C  T6 Uvar b = doc.selectsinglenode(//ttyp/sex); $ _+ C# I" d( Q+ }
b.text = 女;
8 n( p6 p  P! b7 j7 Y  {//alert(doc.xml);
* s7 N* w4 j$ e, F4 G//xml保存(需要在服务端,客户端用fso)
+ b: [" d0 Z' o1 N, s//doc.save();
- A, D4 q1 l: a" D, a; V//查看根接点xml
8 P, |  C" ^% b$ |) C% w) H7 `  ]if(n) : j# q; C. h  }8 |6 O0 D" S6 ^) K
{
! s9 @2 ]/ A9 z3 q. [alert(n.ownerdocument.xml); 3 }! z: A/ I9 m# I& o; o
}
$ G4 `2 g8 h, u$ l' S: n( L//--> ' \2 B3 @2 d6 s
</script>- ?8 E+ a9 N' `

  Y$ x& {7 A1 @7 i# F. N' d更多网页制作信息请查看: 网页制作

回复|共 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技术交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表