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

          聲明:

          該blog是為了收集資料,認識朋友,學習、提高技術,所以本blog的內容除非聲明,否則一律為轉載!!

          感謝那些公開自己技術成果的高人們!??!

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

          常用鏈接

          留言簿(3)

          隨筆分類(148)

          隨筆檔案(143)

          收藏夾(2)

          其他

          學習(技術)

          觀察思考(非技術)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          以下是代碼片段:
          /**
           * 得到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;      // 得到根節點
            var rtn = new Array();
            var n = 0;
            for(var i=0; i<keys.length; i++) {
              var childs = node.childNodes;       // 得到子節點
              var key = keys[i];
           for(var k=0; k<childs.length; k++) {     
             var child = childs[k];
             if(child.nodeName == key) {     // 判斷子節點是否符合
            if(i == keys.length-1) {
                    rtn[n] = child;
              n++;
            } else {
              node = child;
              break;
            }
             }
           }
            }

            return rtn;
          }

          /**
           * 得到由getXMLArray函數得到對象中的值
           * @param node 節點對象
           * @param name
           * @return 返回 String
           */
          function getValue(node, name) {
            var keys = name.split('.');
           
            for(var i=0; i<keys.length; i++) {
              var childs = node.childNodes;       // 得到子節點
              var key = keys[i];
           for(var k=0; k<childs.length; k++) {     
             var child = childs[k];
             if(child.nodeName == key) {     // 判斷子節點是否符合
            if(child.childNodes.length == 1) {        
              // 如果沒有字節點,返回值
              return child.text;
            } else {                                
              // 還有子節點,繼續分析
              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 閱讀(476) 評論(0)  編輯  收藏 所屬分類: ajax&js
          主站蜘蛛池模板: 确山县| 绵竹市| 隆回县| 盘锦市| 甘孜| 遂宁市| 荣昌县| 石楼县| 城固县| 南平市| 永顺县| 高平市| 铅山县| 德昌县| 梅州市| 阿克陶县| 北票市| 常州市| 晋江市| 东乌珠穆沁旗| 德阳市| 兴仁县| 珠海市| 寿宁县| 隆林| 门源| 巴南区| 河曲县| 勐海县| 平远县| 手游| 筠连县| 绥中县| 武隆县| 库车县| 呼玛县| 汤阴县| 西和县| 巴楚县| 卓资县| 新乡县|