隨筆-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里根本沒有如下這個方法
        1. [xml_document] = getXml(sPath): a synchronous GET request, returns null or an xml document object ,是另外一個,里面帶了N多參數,試了試還是不能用,難道是js下錯了?郁悶.....
        2. 換了個方法來處理讀入的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 簡易 閱讀(311) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 富裕县| 龙江县| 彭水| 黔西县| 金塔县| 三台县| 舒城县| 榆林市| 罗定市| 金溪县| 弥勒县| 宿松县| 青神县| 志丹县| 扬州市| 佛冈县| 保德县| 三台县| 永顺县| 五台县| 新建县| 开江县| 衡东县| 虞城县| 鹤岗市| 山阳县| 梧州市| 岳西县| 临潭县| 象州县| 巴彦淖尔市| 临漳县| 长岭县| 江安县| 平谷区| 若尔盖县| 静乐县| 罗山县| 萨嘎县| 昌黎县| 涟源市|