随笔-3  评论-0  文章-4  trackbacks-0
http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXmlRequest.html
( ajax javascript 处理xml)
没搞定,以为可以用这个js自如的处理xml,结果处处报错
var oXml = getXml("sample_data.xml");
var aNodes = selectNodes(oXml,"/sample-data-root/the-data",oXml.documentElement);
这个js里根本没有如下这个方法
  • [xml_document] = getXml(sPath): a synchronous GET request, returns null or an xml document object ,是另外一个,里面带了N多参数,试了试还是不能用,难道是js下错了?郁闷.....
  • 换了个方法来处理读入的xml文件
    文件:formdatas.xml
    <?xml version="1.0" encoding="gb2312"?>
    <formdatas>
      <data>
       <address>地址</address>                                    #text
       <productaddress>生产地址</productaddress>   #text
       <diploma>大专</diploma>                                  #select
       <type>二类|四类|三类</type>                           #checkbox
       <sex>女</sex>                                                   #radio
       <date>2005年12月31日</date>                        #text
       <memo>备注</memo>                                      #textarea   
       </data>  
    </formdatas>
    js片段:
    function updateform(xmlname,obj){  
     var url = ""+xmlname;

     if(document.implementation&&document.implementation.createDocument) {
      
      var xmldoc = document.implementation.createDocument("", "", null);
      xmldoc.onload =  handler(xmldoc, obj);
      xmldoc.load(url);
     }
     else if(window.ActiveXObject) {
      
      var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
      xmldoc.onreadystatechange = function() {
       if(xmldoc.readyState == 4) handler(xmldoc, obj);
      }
      xmldoc.load(url);
     }
    }

    function handler(xmldoc, obj) {
     var formdatas = xmldoc.getElementsByTagName("data")[0]; 
     for (var i=0;i<obj.length ;i++ ){
       e=obj[i];     
       if (e.name != '') //表单中的e.name对应xml里的tagName,利用对应关系,将值写入表单中
       {    
        if ( e.type == 'text' || e.type == 'textarea'){     
         e.value = formdatas.getElementsByTagName(e.name)[0].firstChild.data;   
        }
        if( e.type == 'checkbox' || e.type == 'radio'){
         var temp = formdatas.getElementsByTagName(e.name)[0].firstChild.data.split("|");     
         for(var k=0; k<temp.length; k++){
          //alert( temp[k] );
          if( e.value == temp[k] ) e.checked = true;
         }
        }
        if( e.type == 'select-one' ){
         var selvalue = formdatas.getElementsByTagName(e.name)[0].firstChild.data;
         document.getElementById(e.name+"div").innerHTML="";
         document.getElementById(e.name+"div").innerHTML=selvalue;
        }

       }
     }
    }
    效果:点击"读取xml文件"按钮,将相应的值解析到文本框中,如下所示:
    aa.bmp

    posted on 2006-05-18 19:54 简易 阅读(279) 评论(0)  编辑  收藏

    只有注册用户登录后才能发表评论。


    网站导航: