学习网考试学习资料

Gzu521.com

Javascript+XML 操作

Javascript教程   点击:次   发布时间:2006-9-16   【字体: 】   来源:Gzu521.com
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

网页设计分类
HTML教程
CSS教程
Javascript教程
Dreamweaver教程
FrontPages教程
FireWorks教程
Flash教程
PhotoShop教程
建站知识
分类推荐信息
更多...
大类最新文章
更多...