隨筆 - 154  文章 - 60  trackbacks - 0
          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          聲明:

          該blog是為了收集資料,認(rèn)識朋友,學(xué)習(xí)、提高技術(shù),所以本blog的內(nèi)容除非聲明,否則一律為轉(zhuǎn)載?。?br />
          感謝那些公開自己技術(shù)成果的高人們!??!

          支持開源,尊重他人的勞動!!

          常用鏈接

          留言簿(3)

          隨筆分類(148)

          隨筆檔案(143)

          收藏夾(2)

          其他

          學(xué)習(xí)(技術(shù))

          觀察思考(非技術(shù))

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          以下是代碼片段:
          /**
           * 得到XML文件屬性的集合對象
           * @param xmlDoc XML對象
           * @param name 屬性名稱 如: user
           * @return 返回 Array 對象
           * Example XML:
           * <?xml version='1.0' encoding='utf-8'?>
           * <ekuy>
           *   <user>
           *     <name>
           *       <cnname>小豬</cnname>
           *     </name>
           *     <age>27</age>
           *   </user>
           *   <user>
           *     <name>
           *       <cnname>小霞</cnname>
           *     </name>
           *     <age>26</age>
           *   </user>
           * </ekuy>
           */
          function getXMLArray(xmlDoc, name) {
            var keys = name.split('.');
            var node = xmlDoc.documentElement;      // 得到根節(jié)點
            var rtn = new Array();
            var n = 0;
            for(var i=0; i<keys.length; i++) {
              var childs = node.childNodes;       // 得到子節(jié)點
              var key = keys[i];
           for(var k=0; k<childs.length; k++) {     
             var child = childs[k];
             if(child.nodeName == key) {     // 判斷子節(jié)點是否符合
            if(i == keys.length-1) {
                    rtn[n] = child;
              n++;
            } else {
              node = child;
              break;
            }
             }
           }
            }

            return rtn;
          }

          /**
           * 得到由getXMLArray函數(shù)得到對象中的值
           * @param node 節(jié)點對象
           * @param name
           * @return 返回 String
           */
          function getValue(node, name) {
            var keys = name.split('.');
           
            for(var i=0; i<keys.length; i++) {
              var childs = node.childNodes;       // 得到子節(jié)點
              var key = keys[i];
           for(var k=0; k<childs.length; k++) {     
             var child = childs[k];
             if(child.nodeName == key) {     // 判斷子節(jié)點是否符合
            if(child.childNodes.length == 1) {        
              // 如果沒有字節(jié)點,返回值
              return child.text;
            } else {                                
              // 還有子節(jié)點,繼續(xù)分析
              node = child;
              break;
            }
             }
           }
            }

            return "";
          }

          // 測試:

          var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
          xmlDoc.async = false;
          xmlDoc.loadXML("<?xml version='1.0' encoding='utf-8'?><ekuy><user><name><cnname>小豬</cnname></name><age>27</age></user><user><name><cnname>小霞</cnname></name><age>26</age></user><user><name><cnname>小章</cnname></name><age>25</age></user></ekuy>");

          var list = getXMLArray(xmlDoc, 'user');
          for(var i=0; i<list.length; i++) {
            var obj = list[i];
            document.write(getValue(obj, 'name.cnname'));
            document.write(getValue(obj, 'age'));
            document.write('<br\/>');
          }
          posted on 2007-10-09 09:49 lk 閱讀(472) 評論(0)  編輯  收藏 所屬分類: ajax&js
          主站蜘蛛池模板: 廊坊市| 江孜县| 太仆寺旗| 登封市| 体育| 旌德县| 永吉县| 左权县| 华亭县| 隆尧县| 日土县| 民权县| 阿勒泰市| 体育| 永安市| 罗平县| 怀安县| 蓝山县| 景泰县| 郸城县| 台南县| 临清市| 盐源县| 曲周县| 嵊泗县| 盐边县| 台南市| 临清市| 隆回县| 遵义县| 民乐县| 曲麻莱县| 昭苏县| 汉沽区| 西城区| 赤城县| 饶平县| 崇阳县| 晋城| 通江县| 荣成市|