




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
var str = 11112345;var doc = new xml( str );alert(doc);/创建一个dom对象function xml(str)if(window.DOMParser)/firefox内核的浏览器var p = new DOMParser();return p.parseFromString( str, text/xml );else if( window.ActiveXObject )/ie内核的浏览器var doc = new ActiveXObject( Msxml2.DOMDocument );doc.loadXML(str);return doc;elsereturn false;.if(!document.all)alert(当前浏览器为IE,IE兼容);elsealert(当前浏览器为FireFox,FireFox兼容);-一般情况下,将数据放到一个节点的属性上,这样最容易操作,例如xml格式为:如果得到photo节点后,可以如下操作:node.getAttribute(attr1);这样可以得到属性的值。第二种情况,如果是放入的节点之间,比如:这是我的照片这样可以用node.firstChild.data来获取数据,其中photo之间的内容被看作一个文本节点,因此必须用firstChild首先得到这个节点后,然后取其data信息。第三种情况,如果信息包含一个html或者其他xml无法直接认识的内容,可以将其放入cdata中,这样js也可以很容易处理,跟第二种情况一样:xml代码如下:!CDATA这是我的照片-!-var doc = new ActiveXObject(Msxml2.DOMDocument); /ie5.5+,CreateObject(Microsoft.XMLDOM) doc.loadXML(王);var newnode = doc.createNode(1,name,); var r = doc.createAttribute(id); /创建属性 r.value=test2; newnode.setAttributeNode(r); /添加属性 var newelement=doc.createElement(sex);/创建元素var r1 = doc.createAttribute(id); /创建属性 r1.value=test2;newelement.setAttributeNode(r1)newnode.appendChild(newelement)doc.lastChild.appendChild(newnode) alert(doc.xml)/添加一个子节点后的currNode=doc.documentElement.childNodes.item(0);/doc.documentElement.removeChild(currNode)/删除节点alert(doc.xml)/删除后的/-!-var doc = new ActiveXObject(Msxml2.DOMDocument); /ie5.5+,CreateObject(Microsoft.XMLDOM)/加载文档/doc.load(b.xml);/创建文件头var p = doc.createProcessingInstruction(xml,version=1.0 encoding=gb2312); /添加文件头 doc.appendChild(p);/用于直接加载时获得根接点/var root = doc.documentElement;/两种方式创建根接点/ var root = doc.createElement(students); var root = doc.createNode(1,students,); /创建子接点 var n = doc.createNode(1,ttyp,); /指定子接点文本 /n.text = this is a test; /创建孙接点 var o = doc.createElement(sex); o.text = 男; /指定其文本 /创建属性 var r = doc.createAttribute(id); r.value=test; /添加属性 n.setAttributeNode(r); /创建第二个属性 var r1 = doc.createAttribute(class); r1.value=tt; /添加属性 n.setAttributeNode(r1); /删除第二个属性 n.removeAttribute(class); /添加孙接点 n.appendChild(o); /添加文本接点 n.appendChild(doc.createTextNode(this is a text node.); /添加注释 n.appendChild(doc.createComment(this is a commentn); /添加子接点 root.appendChild(n); /复制接点 var m = n.cloneNode(true); root.appendChild(m); /删除接点 root.removeChild(root.childNodes(0); /创建数据段 var c = doc.createCDATASection(this is a cdata); c.text = hi,cdata; /添加数据段 root.appendChild(c); /添加根接点 doc.appendChild(root); /查找接点 var a = doc.getElementsByTagName(ttyp); /var a = doc.selectNodes(/ttyp); /显示改接点的属性 for(var i= 0;ia.length;i+) alert(ai.xml); for(var j=0;j-function window.onload()var domXML=new ActiveXObject(Microsoft.xmldom);domXML.load(Sele.xml);var myRoot=domXML.documentElement;var myNodes2=myRoot.childNodes;var myNode2=myNodes2.nextNode();var tableStr=;for(var i=0;imyNodes2.length;i+) myNodes3=myNode2.childNodes; myNode3=myNodes3.nextNode(); tableStr=tableStr+; for(var j=0;jmyNodes3.length;j+) tableStr=tableStr+ + myNode3.text + ; myNode3=myNodes3.nextNode(); myNode=myNodes2.nextNode(); tableStr=tableStr + ;tableStr=CPU内存主板硬盘 + tableStr + ;document.all.lideyongValue.innerHTML=tableStr;-首先,我们需要加载这个xml文件,js中加载xml文件,是通过XMLDOM来进行的./ 加载xml文档loadXML = function(xmlFile) var xmlDoc; if(window.ActiveXObject) xmlDoc = new ActiveXObject(Microsoft.XMLDOM); xmlDoc.async = false; xmlDoc.load(xmlFile); else if (document.implementation&document.implementation.createDocument) xmlDoc = document.implementation.createDocument(, , null); xmlDoc.load(xmlFile); else return null; return xmlDoc;xml文件对象出来了, 接下去我就要对这个文档进行操作了.比如说,我们现在需要得到节点Login/Weapon/W的第一个节点的属性,那么我们可以如下进行./ 首先对xml对象进行判断checkXMLDocObj = function(xmlFile) var xmlDoc = loadXML(xmlFile); if(xmlDoc=null) alert(您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!); window.location.href=/Index.aspx; return xmlDoc;/ 然后开始获取需要的Login/Weapon/W的第一个节点的属性值var xmlDoc = checkXMLDocObj(/EBS/XML/Login.xml);var v = xmlDoc.getElementsByTagName(Login/Weapon/W)0.childNodes.getAttribute(Text)而我在我的程序中的写法是这样子的,当然我在程序中的写法是已经应用到实际中的了.一并给出来,以供查看initializeSelect = function(oid, xPath) var xmlDoc = checkXMLDocObj(/EBS/XML/Login.xml); var n; var l; var e = $(oid); if(e!=null) n = xmlDoc.getElementsByTagName(xPath)0.childNodes; l = n.length; for(var i=0; il; i+) var option = document.createElement(option); option.value = ni.getAttribute(Value); option.innerHTML = ni.getAttribute(Text); e.appendChild(option); 上面的访问代码中,我们是通过xmlDoc.getElementsByTagName(xPath)来进行的.还可以通过xmlDoc.documentElement.childNodes(1).childNodes(0).getAttribute(Text)进行访问.一些常用方法:xmlDoc.documentElement.childNodes(0).nodeName,可以得到这个节点的名称.xmlDoc.documentElement.childNodes(0).nodeValue,可以得到这个节点的值. 这个值是来自于这样子的xml格式:b, 于是可以得到b这个值.xmlDoc.documentElement.childNodes(0).hasChild,可以判断是否有子节点根据我的经验,最好是使用getElementsByTagName(xPath)的方法对节点进行访问,因为这样子可以直接通过xPath来定位节点,这样子会有更好的性能. var str = 11112345;var doc = new xml( str );alert(doc);/创建一个dom对象function xml(str)if(window.DOMParser)/firefox内核的浏览器var p = new DOMParser();return p.parseFromString( str, text/xml );else if( window.ActiveXObject )/ie内核的浏览器var doc = new ActiveXObject( Msxml2.DOMDocument );doc.loadXML(str);return doc;elsereturn false;.if(!document.all)alert(当前浏览器为IE,IE兼容);elsealert(当前浏览器为FireFox,FireFox兼容);-一般情况下,将数据放到一个节点的属性上,这样最容易操作,例如xml格式为:如果得到photo节点后,可以如下操作:node.getAttribute(attr1);这样可以得到属性的值。第二种情况,如果是放入的节点之间,比如:这是我的照片这样可以用node.firstChild.data来获取数据,其中photo之间的内容被看作一个文本节点,因此必须用firstChild首先得到这个节点后,然后取其data信息。第三种情况,如果信息包含一个html或者其他xml无法直接认识的内容,可以将其放入cdata中,这样js也可以很容易处理,跟第二种情况一样:xml代码如下:!CDATA这是我的照片-!-var doc = new ActiveXObject(Msxml2.DOMDocument); /ie5.5+,CreateObject(Microsoft.XMLDOM) doc.loadXML(王);var newnode = doc.createNode(1,name,); var r = doc.createAttribute(id); /创建属性 r.value=test2; newnode.setAttributeNode(r); /添加属性 var newelement=doc.createElement(sex);/创建元素var r1 = doc.createAttribute(id); /创建属性 r1.value=test2;newelement.setAttributeNode(r1)newnode.appendChild(newelement)doc.lastChild.appendChild(newnode) alert(doc.xml)/添加一个子节点后的currNode=doc.documentElement.childNodes.item(0);/doc.documentElement.removeChild(currNode)/删除节点alert(doc.xml)/删除后的/-!-var doc = new ActiveXObject(Msxml2.DOMDocument); /ie5.5+,CreateObject(Microsoft.XMLDOM)/加载文档/doc.load(b.xml);/创建文件头var p = doc.createProcessingInstruction(xml,version=1.0 encoding=gb2312); /添加文件头 doc.appendChild(p);/用于直接加载时获得根接点/var root = doc.documentElement;/两种方式创建根接点/ var root = doc.createElement(students); var root = doc.createNode(1,students,); /创建子接点 var n = doc.createNode(1,ttyp,); /指定子接点文本 /n.text = this is a test; /创建孙接点 var o = doc.createElement(sex); o.text = 男; /指定其文本 /创建属性 var r = doc.createAttribute(id); r.value=test; /添加属性 n.setAttributeNode(r); /创建第二个属性 var r1 = doc.createAttribute(class); r1.value=tt; /添加属性 n.setAttributeNode(r1); /删除第二个属性 n.removeAttribute(class); /添加孙接点 n.appendChild(o); /添加文本接点 n.appendChild(doc.createTextNode(this is a text node.); /添加注释 n.appendChild(doc.createComment(this is a commentn); /添加子接点 root.appendChild(n); /复制接点 var m = n.cloneNode(true); root.appendChild(m); /删除接点 root.removeChild(root.childNodes(0); /创建数据段 var c = doc.createCDATASection(this is a cdata); c.text = hi,cdata; /添加数据段 root.appendChild(c); /添加根接点 doc.appendChild(root); /查找接点 var a = doc.getElementsByTagName(ttyp); /var a = doc.selectNodes(/ttyp); /显示改接点的属性 for(var i= 0;ia.length;i+) alert(ai.xml); for(var j=0;j-function window.onload()var domXML=new ActiveXObject(Microsoft.xmldom);domXML.load(Sele.xml);var myRoot=domXML.documentElement;var myNodes2=myRoot.childNodes;var myNode2=myNodes2.nextNode();var tableStr=;for(var i=0;imyNodes2.length;i+) myNodes3=myNode2.childNodes; myNode3=myNodes3.nextNode(); tableStr=tableStr+; for(var j=0;jmyNodes3.length;j+) tableStr=tableStr+ + myNode3.text + ; myNode3=myNodes3.nextNode(); myNode=myNodes2.nextNode(); tableStr=tableStr + ;tableStr=CPU内存主板硬盘 + tableStr + ;document.all.lideyongValue.innerHTML=tableStr;-首先,我们需要加载这个xml文件,js中加载xml文件,是通过XMLDOM来进行的./ 加载xml文档loadXML = function(xmlFile) var xmlDoc; if(window.ActiveXObject) xmlDoc = new ActiveXObject(Microsoft.XMLDOM); xmlDoc.async = false; xmlDoc.load(xmlFile); else if (document.implementation&document.implementation.createDocument) xmlDoc = document.implementation.createDocument(, , null); xmlDoc.load(xmlFile); else return null; return xmlDoc;xml文件对象出来了, 接下去我就要对这个文档进行操作了.比如说,我们现在需要得到节点Login/Weapon/W的第一个节点的属性,那么我们可以如下进行./ 首先对xml对象进行判断checkXMLDocObj = function(xmlFile) var xmlDoc = loadXML(xmlFile); if(xmlDoc=null) alert(您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!); window.location.href=/Index.aspx; return xmlDoc;/ 然后开始获取需要的Login/Weapon/W的第一个节点的属性值var xmlDoc = checkXMLDocObj(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程监理试题及答案
- 科目一考试题试卷及答案
- 讯飞智能面试题及答案
- 妇科超声考试题及答案
- 压疮管理规范理论考核试题及答案
- 2025年全国保密知识竞赛题库及答案
- 临床护理技术操作常见并发症理论考核试题附答案
- 2025年护士抢救工作试题及答案
- 2025年施工员之装修施工基础知识考试题库及参考答案(典型题)
- 2025年A特种设备相关管理考试题库及答案
- 与欧美网红合作合同范本
- 2025年广东省中考数学试卷(含解析)
- 互操作性标准-第1篇-洞察及研究
- 广告牌安装后维护养护措施
- 大件运输安全管理制度
- 《电子产品制造技术》课件-第1章 电子工艺技术入门
- Q-GDW12562-2024超特高压盘形悬式瓷绝缘子用瓷件原材料、工艺和检验规则
- 一线员工执行力培训内容
- 幼教拍摄培训
- 船舶公司内务管理制度
- 护理职业素养课件
评论
0/150
提交评论