风人园

弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……

用javascript操作xml

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

< 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 >

javascript读取xml

<%
Response.Write "<?xml version=""1.0"" encoding=""GB2312"" ?>"
Response.Write "<Msg>"
     Response.Write "<TName>kingapex</TName>"
     Response.Write "<TName>wangfeng</TName>"
     Response.Write "<Name>ddd</Name>"
Response.Write"</Msg>"

%>

'==================test.asp=====================
<Script Language="Javascript">
function GetXmlData(){
var str="";
var NewName="";

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("xml.asp");
     if(xmlDoc.parseError.errorCode != 0)
     {
           alert("sorry 出现错误,请和管理员联系!");
           window.close();
           return;
     }else
        {
           var TName = xmlDoc.documentElement.selectNodes("TName");
           var Name = xmlDoc.documentElement.selectNodes("Name");
           var n = TName.length;
      document.write ("Name元素为:"+Name(0).text+"<br>第一个TName员素为:"+TName(0).text+"<br>第二个TName员素为:"+TName(1).text);
     }
}

</Script>
<a href="javascript:GetXmlData();">look</a>

posted on 2006-07-13 12:16 风人园 阅读(289) 评论(0)  编辑  收藏 所属分类: JavaScript