隨筆 - 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
          主站蜘蛛池模板: 泗水县| 木兰县| 东源县| 万宁市| 乌拉特后旗| 乌拉特中旗| 蓬溪县| 巴彦县| 视频| 饶河县| 弥勒县| 平顺县| 琼结县| 元氏县| 哈尔滨市| 时尚| 嘉兴市| 雅江县| 泸州市| 鄯善县| 锡林浩特市| 清镇市| 灌阳县| 博乐市| 久治县| 呈贡县| 昌乐县| 静宁县| 同德县| 湖口县| 太白县| 新泰市| 麦盖提县| 昌宁县| 佛学| 柳林县| 成武县| 靖远县| 施秉县| 贵南县| 富源县|