隨筆-3  評(píng)論-0  文章-4  trackbacks-0
          http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXmlRequest.html
          ( ajax javascript 處理xml)
          沒(méi)搞定,以為可以用這個(gè)js自如的處理xml,結(jié)果處處報(bào)錯(cuò)
          var oXml = getXml("sample_data.xml");
          var aNodes = selectNodes(oXml,"/sample-data-root/the-data",oXml.documentElement);
          這個(gè)js里根本沒(méi)有如下這個(gè)方法
        1. [xml_document] = getXml(sPath): a synchronous GET request, returns null or an xml document object ,是另外一個(gè),里面帶了N多參數(shù),試了試還是不能用,難道是js下錯(cuò)了?郁悶.....
        2. 換了個(gè)方法來(lái)處理讀入的xml文件
          文件:formdatas.xml
          <?xml version="1.0" encoding="gb2312"?>
          <formdatas>
          ? <data>
          ?? <address>地址</address>??????????????????????????????????? #text
          ?? <productaddress>生產(chǎn)地址</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對(duì)應(yīng)xml里的tagName,利用對(duì)應(yīng)關(guān)系,將值寫入表單中
          ???{????
          ????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;
          ????}

          ???}
          ?}
          }
          效果:點(diǎn)擊"讀取xml文件"按鈕,將相應(yīng)的值解析到文本框中,如下所示:
          aa.bmp

          posted on 2006-05-18 19:54 簡(jiǎn)易 閱讀(313) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 望奎县| 安国市| 广元市| 镇赉县| 遵化市| 永嘉县| 新建县| 敦化市| 精河县| 金寨县| 平山县| 阳江市| 岳普湖县| 奉贤区| 小金县| 孝感市| 北海市| 西青区| 紫云| 榕江县| 宣汉县| 海南省| 黄浦区| 中西区| 呼伦贝尔市| 蒲江县| 上思县| 疏附县| 哈密市| 荆门市| 汉阴县| 永宁县| 枞阳县| 娱乐| 巴东县| 三原县| 乌兰察布市| 牡丹江市| 保靖县| 奇台县| 仪征市|