posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          問題: 對javascript Dom 解讀 xml? 的問題
          解決: 網(wǎng)頁中 javascript 學習

          過程 js
          function?searchSales(){
          ????
          var?url?=?"MyXml.xml";???????????// url 不限制 可以為 jsp? *.do? 只要 out.print()出來的 是 xml 格式
          ????
          var?myAjax?=?new?Ajax.Request(
          ???????????? ?url,
          ????
          {
          ????method:?'get',
          ????onComplete:?action????????????? // 成功得到 requ 的掛載方法
          ????}
          );
          }


          function??action(request)
          {
          ????
          var?dom?=?request.responseXML;??? //返回 javascript Dom 解讀對象
          ????
          ????
          var?list?=?dom.getElementsByTagName('Weapon');?
          ????????????????????????????????//返回標簽名<Weapon>? 集合項可用.item(i) 得出? .firstChild.nodeValue得值
          ?
          ????
          for(?var?i?=?0;?i?<?list.length;?i++?)?{
          ????????
          var?nli?=?list.item(i);
          ????????
          var?W?=?nli.getElementsByTagName(?'W'?);
          ????????window.alert(W.item(
          0).firstChild.nodeValue);
          ????}

          ?????
          }

          HTML 頁面

          </HEAD>
          <head>
          ????
          <script?src="prototype1.5.0.js"></script>
          ????
          <script?src="xml.js"></script>
          </head>
          <input?id='test'?type="submit"?value="test"?onclick="searchSales();"?>
          </HTML>

          XML

          <?xml?version="1.0"?encoding="utf-8"??>
          <Login>

          ????
          <Weapon?id="1">
          ????????
          <W?Text="光束劍"?Value="0">1</W>
          ????????
          <W?Text="光束配刀"?Value="1">2</W>
          ????
          </Weapon>

          ????
          <Weapon?id="2">
          ????????
          <W?Text="光束劍"?Value="0">3</W>
          ????????
          <W?Text="光束配刀"?Value="1">4</W>
          ????
          </Weapon>
          ????
          ?????
          <Weapon?id="3">
          ????????
          <W?Text="光束劍"?Value="0">5</W>
          ????????
          <W?Text="光束配刀"?Value="1">6</W>
          ????
          </Weapon>
          </Login>

          心得: 調試了很久當時對javascript 的不熟悉,但我沒有放棄 去網(wǎng)上查,問同事 最后成功
          ?????????????????---------------------?堅持就是勝利?------------------

          評論

          # re: My Ajax  回復  更多評論   

          2007-05-18 17:35 by G_G
          function searchSales(){
              
          var url = "MyXml.xml";
              
          var myAjax = new Ajax.Request(
              url,
              
          {
              method: 'get',
              onComplete: test
              }
          );
          }


          function test(request)
          {
              
          var dom = request.responseXML;
              
          var root = dom.documentElement;
          //    window.alert( root );
              
              
          var list = dom.getElementsByTagName('W');  

              
          forvar i = 0; i < list.length; i++ ) {
                  window.alert(list.item(i).firstChild.nodeValue);
              }

               
          }

          得出結果是 1 2 3 4 5 6

          # re: My Ajax  回復  更多評論   

          2007-05-21 14:17 by G_G
          對象 屬性  方法
          XMLDocument
          documentElement
           得到   root
          HTMLCollection   length  得到長度 item(i)  得到 Element
          Element .firstChild.nodeValue 得到 value?    getAttribute('id') 得到 attribut

           

           其他屬性方法參見 http://wddavid.cnblogs.com/archive/2005/07/25/199358.html
          function searchSales(){
              
          var url = "MyXml.xml";
              
          var myAjax = new Ajax.Request(
              url,
              
          {
              method: 'get',
              onComplete: test
              }
          );
          }


          function test(request)
          {
              
          var dom = request.responseXML;
              
          var root = dom.documentElement;    
              
          var body = root.getElementsByTagName('body').item(0);
              
          var pid_1 = function(){
                  
          var listP = body.getElementsByTagName('p');
                  
          for(var i=0; i<listP.length; i++){
                      
          if(listP.item(i).getAttribute('id')=='2')
                          
          return listP.item(i);
                  }

                  
          return null;
              }

          //    alert(oHtml.childNodes.item(0));
          //
              alert(oHead.parentNode==oHtml);  
          //
              alert( oP.item(0).getAttribute('id')  ); 
          //
              alert( oP.item(0).attributes.getNamedItem("id").nodeValue  ); 
          //
              alert( oP.getAttribute('id') );
              alert(pid_1().firstChild.nodeValue);
          }

          # re: My Ajax  回復  更多評論   

          2007-05-21 17:20 by G_G
          function searchSales(){
              
          var url = "MyXml.xml";
              
          var myAjax = new Ajax.Request(
              url,
              
          {
              method: 'get',
              onComplete: test
              }
          );
          }


           
          function getMyElement(obj,tagName,attrName,value) {
                   
          var list = obj.getElementsByTagName(tagName);
                  
          for(var i=0; i<list.length; i++){
                      
          if(list.item(i).getAttribute(attrName)==value)
                          
          return obj.getElementsByTagName(tagName).item(i);
                  }

                  
          return null;
           }

           
          function test(request)
          {
              
          var dom = request.responseXML;
              
          var root = dom.documentElement;    
              
          var weapon = getMyElement(root,'Weapon','id','3');
              
          var W = getMyElement(weapon,'W','Value','0');
              window.alert(W.firstChild.nodeValue);
          }

          哈哈 高級的  ...

          # 動態(tài)javascript建表  回復  更多評論   

          2007-06-05 17:37 by G_G
          問題: Ajax 讀出來xml  怎么由 javascript 建表
          解決:   var dom = new ActiveXObject("Microsoft.XMLDOM"); //得到 XMLDom 對象
                      并 dom.loadXML( request.responseText ) ; 
                                        由prototype 的 request.responseText  填 充 XMLDom
                   
           http://localhost:7000/xxs/test.do        返回
                   一個String  弄出來的 XML  大概就如下
            <?xml version="1.0" encoding="gb2312" ?> 
          <mans>
          <man>
            
          <name>google</name> 
            
          <avg>23</avg> 
            
          </man>
          <man>
            
          <name>heha</name> 
            
          <avg>23</avg> 
            
          </man>
            
          </mans>
            
           
           

          <html>

            
          <head>
              
          <title>MyHtml.html</title>
                
          <SCRIPT language="Javascript" src="prototype1.5.0.js"></SCRIPT>
            
          </head>
                
          <body>
                  
          <input id='test' type="submit" value="test" onclick="searchSales();" >
              
          </body>
          </html>

          <script type="text/javascript">
          <!--
              
          function searchSales(){
                  
          var url = 'http://localhost:7000/xxs/test.do';           // url 不限制 可以為 jsp  *.do  只要 out.print()出來的 是 xml 格式
                  var myAjax = new Ajax.Request(
                  url,
                  
          {
                  method: 'get',
                  onComplete: action              
          // 成功得到 requ 的掛載方法
                  }
          );
              }

              
              
              
          function  action(request)
              
          {
                  
          var dom = new ActiveXObject("Microsoft.XMLDOM");
                  dom.loadXML(request.responseText);
                  
          var root = dom.documentElement;
                  
          var body = document.getElementsByTagName('body')[0];
                  
          var my_array = new Array();
                  my_array[
          0= "name";
                  my_array[
          1= "avg";
                  
          var table_1 = table(root,"man",my_array);
                  
                  table_1.setAttribute(
          "border","2");

                  body.appendChild(table_1);
              }

              
              
              
          function table(root,trName,tdNames) {
                  
          var tbl     = document.createElement('table')
                  
          var tblBody =  document.createElement('tbody')
                  
          var rows = root.getElementsByTagName(trName);
                  
          for (var i = 0; i <rows.length; i++{
                      
          var tr = document.createElement('tr')
                      
          for(var j=0;j<tdNames.length;j++){
                              
          var col = rows.item(i).getElementsByTagName(tdNames[j])[0];
                              
          var value =  col.firstChild.nodeValue ;
                               
          var td = document.createElement('td');
                               td.innerHTML 
          = value ;
                                tr.appendChild(td);
                     }

                      tblBody.appendChild(tr);
                  }

                 tbl.appendChild(tblBody);
               
          return tbl;
          }


          //-->
          </script>

          # re: XMLDOM 詳細說明和網(wǎng)上有關資源 + 動態(tài)javascript建表  回復  更多評論   

          2007-06-08 20:46 by wqdqw
          qwd
          主站蜘蛛池模板: 九龙县| 佛坪县| 浙江省| 西安市| 邹城市| 桦甸市| 林芝县| 喀什市| 钦州市| 辉县市| 桂阳县| 田林县| 自贡市| 佛冈县| 旌德县| 屏东县| 铜梁县| 漳浦县| 隆尧县| 伊宁市| 金乡县| 黔南| 潮州市| 广宗县| 封丘县| 佛学| 资中县| 林甸县| 鹤壁市| 师宗县| 云林县| 拜泉县| 宝丰县| 望谟县| 马边| 读书| 岳普湖县| 克拉玛依市| 资中县| 罗田县| 郁南县|