| Gzu521.com学习网 |
|
我的xml文件login.xml如下.
<?xml version="1.0" encoding="utf-8" ?> 转,贴.自,D.O,C.5,2.1,资.料,分.享,网.网页设计,Javascript教程 www.doc521.com <login> <character> <c text="热血" value="0"></c> <c text="弱气" value="1"></c> <c text="激情" value="2"></c> <c text="冷静" value="3"></c> <c text="冷酷" value="4"></c> </character> <weapon> <w text="光束剑" value="0"></w> <w text="光束配刀" value="1"></w> </weapon> <economyproperty> <p text="平均型" value="0"></p> <p text="重视攻击" value="1"></p> <p text="重视敏捷" value="2"></p> <p text="重视防御" value="3"></p> <p text="重视命中" value="4"></p> </economyproperty> </login> 现在我需要对这个xml文件的内容进行操作. 首先,我们需要加载这个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; i<l; i++) { var option = document.createelement(’option’); xQdkK'M[ 此文转贴于我的学习网网页设计Javascript教程 http://www.Gzu521.com]xQdkK'M option.value = n[i].getattribute(’value’); option.innerhtml = n[i].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格式:<a>b</b>, 于是可以得到b这个值. xmldoc.documentelement.childnodes(0).haschild,可以判断是否有子节点 根据我的经验,最好是使用getelementsbytagname(xpath)的方法对节点进行访问,因为这样子可以直接通过xpath来定位节点,这样子会有更好的性能. |
责任编辑:gzu521