前端开发

用javascript操作xml

2020-11-06 17:52:04 阅读数 7613 收藏 0

文中尽量用上所有的操作和属性,以做示范

复制代码 代码如下:
<script language="JavaScript"> 
<!-- 
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 comment\n")); 

        //添加子接点 
        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;i<a.length;i++) 
    { 
        alert(a[i].xml); 
        for(var j=0;j<a[i].attributes.length;j++) 
        { 
            alert(a[i].attributes[j].name); 
        } 
    } 

    //修改节点,利用XPATH定位节点 
    var b = doc.selectSingleNode("//ttyp/sex"); 
    b.text = "女"; 

    //alert(doc.xml); 

    //XML保存(需要在服务端,客户端用FSO) 
    //doc.save(); 

    //查看根接点XML 
    if(n) 
    { 
        alert(n.ownerDocument.xml); 
    } 

//--> 
</script>