12下一页
返回列表 发新帖

用javascript操作xml方法与技巧

327.4k 15
swmozowtfl 发表于 2015-7-10 22:29:49|湖北 | 查看全部 阅读模式
代码如下:<script language=javascript>
9 d& K# ^+ A7 x6 f, ~; p% n<!--
( [1 @9 _! ~$ M( K$ a6 hvar doc = new activexobject(msxml2.domdocument); //ie5.5+,createobject(microsoft.xmldom) ) T% S* P- q; m9 j- d
//加载文档 ' _& E3 Y6 S$ M2 F' e
//doc.load(b.xml);
0 ]! A  u$ M/ l$ D//创建文件头 2 w7 V. C1 B% W5 \) b
var p = doc.createprocessinginstruction(xml,version='1.0' encoding='gb2312'); $ @5 J9 q+ v0 {. y: o
//添加文件头 - d0 o8 L  V. Y, j& W0 o
doc.appendchild(p);
- u' v) R% ]9 y! N2 k! |1 \//用于直接加载时获得根接点 & j( |5 G- R# z( Z) R+ H- _
//var root = doc.documentelement; * _/ ~( R2 o) e% K& a
//两种方式创建根接点
, P( X5 M4 ~5 P  b// var root = doc.createelement(students); ( [1 i4 P% X& g$ D
var root = doc.createnode(1,students,);
. B5 K2 t& H9 \+ t7 O: Z* s//创建子接点 ! X. l4 L: q5 k0 e4 [- V" }
var n = doc.createnode(1,ttyp,);
* S7 g3 e( u9 z' D0 H/ k7 n//指定子接点文本 ! n5 E, g* V6 G1 {( R& L. p3 K
//n.text =  this is a test;
+ b! Y* G9 B& c4 ?//创建孙接点
4 H' h( ?' f3 \1 N/ w/ I" ~3 q$ Mvar o = doc.createelement(sex);
& O( {+ `' D4 M4 `o.text = 男; //指定其文本
& ], H, h  ]" P//创建属性
9 _" b# J! p2 z+ {( H& i- wvar r = doc.createattribute(id);
6 V5 v) r/ U- r( a6 w4 Jr.value=test;
' }# G1 B' l- }/ I* U8 `//添加属性 5 V1 n: t& _( i" I5 _
n.setattributenode(r); 4 K8 l( k+ v2 [( u# {$ a
//创建第二个属性 ) |/ U( o0 ?+ k+ h
var r1 = doc.createattribute(class); : e$ [+ ?. g) h* O  |9 B  n" u
r1.value=tt;
& z  `9 O+ E5 a- b% _# N//添加属性
" U! f% K5 M' e$ ^: Wn.setattributenode(r1);
6 v9 J. a7 k. w9 v0 t. m//删除第二个属性
; a5 \$ u  `8 a6 {. Gn.removeattribute(class);
0 b7 |9 ]! v) w' H' A//添加孙接点
# f4 n" g2 {  i; V* z: {$ [% b) Sn.appendchild(o);
. l1 O- r9 X4 K* K. }# n//添加文本接点
5 A. {* |! k! h3 y/ Zn.appendchild(doc.createtextnode(this is a text node.)); . y7 B% k+ `. r- Q  m
//添加注释
0 u6 w% `: _1 w6 Q- |; l& Nn.appendchild(doc.createcomment(this is a comment\n));
: q! Q2 y" A: \* B3 T" l, n1 X//添加子接点
2 G! Q: F% g' ]4 Y  t: ^root.appendchild(n); & Y9 V% l6 |! e' \( l5 V' H
//复制接点 + H5 K6 W1 S) b3 K# X
var m = n.clonenode(true); . P7 U4 C, [2 f# {, Z
root.appendchild(m); ! i$ V. B9 |& B" X7 S' f, L
//删除接点
8 U4 Y9 S! `# C& X; `! ~root.removechild(root.childnodes(0)); % ]5 ?! {1 p8 D! W
//创建数据段
; g# l) E$ `8 R3 x3 qvar c = doc.createcdatasection(this is a cdata);
; K: B9 f" m. A) y6 |c.text = hi,cdata; 3 J0 c5 k9 j$ A7 a1 H" N( l
//添加数据段 2 r4 {$ c; k5 p) E
root.appendchild(c); , z+ r  T$ i2 Q' v( T5 k" C! Y
//添加根接点
! I/ v$ U/ ?3 S4 a7 udoc.appendchild(root); : `; ^, E/ s/ l3 L6 Q! z2 Z9 W
//查找接点 3 s' H7 V# O1 Z6 ~' W+ b3 ^
var a = doc.getelementsbytagname(ttyp); 8 ^* m& R- q" g1 k
//var a = doc.selectnodes(//ttyp); . F  c% W1 |0 B* b0 G% O# p( L
//显示改接点的属性 / L/ Q) U0 t6 p; {  Q7 V. e+ X3 r
for(var i= 0;i<a.length;i++)
; N% C- O% {& l! ^5 A{
0 o7 x6 m6 S% ialert(a[i].xml);
4 L2 o' @8 ?& W) G3 zfor(var j=0;j<a[i].attributes.length;j++) 6 m3 k- \4 O" m/ h& a4 R; h
{ 7 _$ a& i% `8 W- H" d7 B* R
alert(a[i].attributes[j].name);
# C  m: U  U. w0 I3 ?}
+ P4 O! @6 J9 D( y}
4 A% X3 {- J/ B( k3 V4 e, ]: J//修改节点,利用xpath定位节点 $ G  G0 X" m6 R: I# y! G) P  C% D
var b = doc.selectsinglenode(//ttyp/sex); $ h3 k7 M: H  v+ m$ w; Y6 P) a
b.text = 女; , Y/ f, p& {4 M0 ~6 A
//alert(doc.xml); ( i+ q8 R  R9 q, j9 [  q* N3 P( V
//xml保存(需要在服务端,客户端用fso)
/ g3 A* w% k( `* f: X* }. r9 v. h//doc.save(); - I9 A, C* N% r9 m  r# p
//查看根接点xml 1 {3 l# V5 V  |* T7 `
if(n) , r' p. @6 ?& W* l" P& g5 u- J$ Z* m
{
8 F9 p! ~' l  _7 Dalert(n.ownerdocument.xml);
8 ~  }( q0 E/ E3 F$ L3 C}
  e0 ?1 ?/ W" d2 u% B//-->
$ L: Q; i+ ~6 Y( K( W7 F3 a</script>9 E3 Y9 Y  n' y6 q2 W

: r5 u* i2 c$ y更多网页制作信息请查看: 网页制作

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