解決之道

          個人日記
          posts - 33, comments - 1, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          [導入]javascript讀取xml

          Posted on 2008-07-31 14:53 閱讀(122) 評論(0)  編輯  收藏
          /**
          ?*?得到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\/> ' );
          }


          kelven 2006-12-25 17:12 發表評論

          文章來源:http://www.aygfsteel.com/zhangrenquan/articles/89946.html

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


          網站導航:
           
          主站蜘蛛池模板: 慈溪市| 新源县| 宜州市| 微山县| 砀山县| 安溪县| 通化县| 黑河市| 桓台县| 原阳县| 尖扎县| 大安市| 齐齐哈尔市| 连平县| 道真| 上杭县| 郎溪县| 惠州市| 沐川县| 林芝县| 什邡市| 隆昌县| 清远市| 辽中县| 黔东| 余干县| 辛集市| 阳信县| 安达市| 凤凰县| 蛟河市| 德庆县| 特克斯县| 淄博市| 彭阳县| 台州市| 兴义市| 商丘市| 临夏市| 临清市| 宁都县|