12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.5k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript>
# [3 _; o# y3 J: b7 `$ @<!--
" U; k) C" B+ i1 i, b% C4 V: jvar doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom)
: b3 ~& E- P% N1 j: G. P( `//加载文档 $ D& G& |4 Z+ d5 c% |
//doc.load(b.xml);
, e. W7 |5 |* D2 u2 w1 D//创建文件头 ; ~/ y8 L5 g( g4 l! J
var p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312'); % \4 z2 }6 G) O* Q: ?
//添加文件头
6 [3 }% W2 ?/ s8 [$ mdoc.appendchild(p); 0 a$ `8 e  m( X, k
//用于直接加载时获得根接点 9 H6 v1 V; h. n9 u, N
//var root = doc.documentelement; . }2 `7 \( |) D5 w
//两种方式创建根接点
2 y- T& e: p/ `- _9 T" x; s4 P// var root = doc.createelement(students);
; q. o- n+ n  K- Tvar root = doc.createnode(1,students,); 4 n# Z: O. b( R8 V
//创建子接点 / `1 D7 A. F; @4 F  y5 ~
var n = doc.createnode(1,ttyp,); 9 {: @; W, S# ~+ v/ h; U  G) Y
//指定子接点文本
, H( f% B! @! D# B//n.text =  this is a test; 9 n9 G2 i$ l  A- T
//创建孙接点 8 j$ a2 H- l9 \+ k( j1 P. I
var o = doc.createelement(sex); . p: o, M5 M2 z" X$ t
o.text = 男; //指定其文本 ' J2 R" d# p" r4 Z& L0 k
//创建属性 3 w$ @6 {: t+ s8 _" `' P  G
var r = doc.createattribute(id); 4 l4 P% K3 P. P" Y8 V6 T
r.value=test;
- f5 Z0 s( X9 P: q% H: G8 [+ w//添加属性
2 A' A, E6 B: E9 _- Wn.setattributenode(r);
/ D+ w" F, n- y2 r: q//创建第二个属性 9 a$ B$ p' Z1 t
var r1 = doc.createattribute(class);
% l, [2 l7 x6 Q: K) `! N: W5 ]r1.value=tt;
* X+ O7 t' w" {, H1 ~+ _# ?7 @//添加属性 + v$ z2 b; r* x& H& f7 i
n.setattributenode(r1); . e3 T$ [5 T5 I  N
//删除第二个属性 : X5 l% v1 \. c% \
n.removeattribute(class);
  p' t9 M+ E' r  @6 k//添加孙接点
8 C" y$ i" K, y9 [# V! ^n.appendchild(o); 8 f4 c9 x9 a+ U* k
//添加文本接点 ( c$ g1 L. D: h" r+ u
n.appendchild(doc.createtextnode(this is a text node.));
1 n' L% m6 O& t  l//添加注释 1 F- O+ D# g+ x- ?; O9 P# R. @: [
n.appendchild(doc.createcomment(this is a comment\n)); + R& j! S+ i& K% t
//添加子接点 ; n) N- V; H4 a. Q% Y8 `% B4 V
root.appendchild(n); $ x3 d7 U6 \3 y; ^
//复制接点 5 G* _/ b3 d! [8 f* [% x
var m = n.clonenode(true);
# ?9 d* t, i( ]* W- s3 N, uroot.appendchild(m);
# F3 X* L9 c& c" ~5 b//删除接点
- M7 o! Q0 k5 t4 A5 I: S& vroot.removechild(root.childnodes(0));
/ x& c5 v. d8 p; v//创建数据段 ( C+ c2 V( f6 e9 J4 j* h. f
var c = doc.createcdatasection(this is a cdata); 0 |2 t; y, L5 Q5 {, |! r4 _
c.text = hi,cdata; 3 b8 {  H2 ~6 B0 \: E0 y
//添加数据段 1 D+ z2 c4 i" M& M+ x, R5 Q' v
root.appendchild(c);
+ X& J) K  n" A1 H, P8 W- E//添加根接点 % L4 Y/ q0 l# p2 }
doc.appendchild(root); : j9 l3 G' e. }3 Y
//查找接点 1 z# r: \  l( c
var a = doc.getelementsbytagname(ttyp); " _" W+ T& K7 L- I0 n/ h
//var a = doc.selectnodes(//ttyp);
7 C6 T" u7 h7 d5 J; l3 j//显示改接点的属性 ' l4 `2 y" L$ P7 R/ ^; u6 Z
for(var i= 0;i<a.length;i++)
  \$ `: |9 d: C% q; o0 B; D{ ! ~; Q. C& J) ]4 X
alert(a[i].xml); ! R7 H2 y' U$ R' ~/ @
for(var j=0;j<a[i].attributes.length;j++)
' L3 K: F- o0 f{
- E- |* v: u! n% Qalert(a[i].attributes[j].name);
) J4 ?/ f0 s0 y+ T  U9 s2 R8 ?" L6 N} / S4 l, \5 E4 _  S$ V/ h
}
8 @2 T8 d( ?( _: K//修改节点,利用xpath定位节点
; Z( k& C- T: [: o8 {& F/ ovar b = doc.selectsinglenode(//ttyp/sex);
8 D" O7 b4 U; h8 J: b0 R9 Hb.text = 女;
0 h" k0 R; n' _4 u# m8 V//alert(doc.xml);
0 o. Q0 m7 j3 I6 e$ a7 e2 R//xml保存(需要在服务端,客户端用fso)
! h, t% X$ |: G2 u* z' C! ]* @//doc.save(); ! Z: P" F7 V6 v# o& ^2 q  o2 d6 I
//查看根接点xml
1 f3 e$ Q$ _) u6 R6 ]! d8 B; H& N* |if(n)
- h# m, p- n% |( X+ G{
$ q) f! d: a1 U  E8 Dalert(n.ownerdocument.xml);
/ y8 Q8 \4 N) i- j3 i} / F' z  E& t$ H1 ?; V; i  o
//--> 3 W6 I5 L3 v, {" \0 d
</script>% [# E& |  C+ P7 @/ z
6 L- V3 W; O3 M. Q* f
更多网页制作信息请查看: 网页制作

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