jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法示例
本文實(shí)例講述了jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法。分享給大家供大家參考,具體如下:
用jquery遍歷xml網(wǎng)上已經(jīng)有很多, 但是看了好多文章, 對于不指定屬性名稱的遍歷方法卻沒有
研究了一下, 好像jquery沒有attributes. 還是要借助于原生態(tài)的JS
以下是JS代碼
<script type="text/javascript" src="js/jquery.min.js"></script> <div id="c"></div> <script> //用于縮進(jìn), 根據(jù)節(jié)點(diǎn)級別 var M_DOT = 1; //遞歸函數(shù), 用于遍歷XML, 同時(shí)打印出來 function fn(obj){ //定義一個(gè)變量, 用于縮進(jìn) var dotString = ""; //根據(jù)縮進(jìn)量, 得到縮進(jìn)的長度 for(j = 1; j <= M_DOT; j++){ dotString += " "; } //jquery不支持attributes屬性集, 轉(zhuǎn)為原生js, 并賦給myObj變量 var myObj = obj[0].attributes; //打印縮進(jìn) $("#c").append(dotString) //打印屬性集nodeName, nodeValue為原生JS, 分別表示為屬性的名稱, 和屬性值 $(myObj).each(function(i){ $("#c").append( ($(this)[0].nodeName) + "=<u>" + ($(this)[0].nodeValue) + "</u> " ); }) //打印節(jié)點(diǎn)的文本 //$("#c").append( "<b>" + obj.text() + "</b><br/>"); //打印換行 $("#c").append( "<br/>"); //判斷DOM有無子DOM if( obj.length > 0 ){ //如果有, 遍歷之 obj.children().each(function(i){ //縮進(jìn)量加一 M_DOT++; //遞歸遍歷子DOM fn($(this)); //縮進(jìn)量加一 M_DOT--; }) }else{ //如果沒有子DOM, 返回false return false; } } //程序入口 $(document).ready(function() { //ajax獲取xml數(shù)據(jù), 詳細(xì)用法見jquery手冊 $.get('config.xml', function(d){ //len = $(d).find("*").length; //找到xml頂級結(jié)點(diǎn). ('*:first'):就是查找第一個(gè)DOM. 詳細(xì)說明見jquery手冊 //find, children(), each, 以及后面用到的 append 等請查閱jquery手冊 $(d).find('*:first').children().each(function(i){ //找到頂級結(jié)點(diǎn)的子結(jié)點(diǎn), 并把子結(jié)點(diǎn)對象傳給fn函數(shù) fn($(this)); }); }); }); </script>
附一個(gè)XML文件
請取名config.xml放在和以上js同目錄下, 并都放在站點(diǎn)中
<?xml version="1.0" encoding="utf-8" ?> <roster> <student ID="s101"> <name>李華</name> <sex>男</sex> <birthday>1978.9.12</birthday> <score>92</score> <skill>Java</skill> <skill>Oracle</skill> <skill>C Sharp</skill> <skill>SQL Server</skill> </student> <student ID="s107"> <name>李尋歡</name> <sex>男</sex> <birthday>1981.4.19</birthday> <score>58</score> <skill>UML</skill> <skill>C Sharp</skill> <skill>XML</skill> <skill>SQL Server</skill> </student> </roster>
PS:這里再為大家提供幾款關(guān)于xml操作相關(guān)在線工具供大家參考使用:
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
在線格式化XML/在線壓縮XML:
http://tools.jb51.net/code/xmlformat
XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress
xml代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery操作xml技巧總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對大家jQuery程序設(shè)計(jì)有所幫助。
- python xml.etree.ElementTree遍歷xml所有節(jié)點(diǎn)實(shí)例詳解
- php遍歷解析xml字符串的方法
- java遍歷讀取xml文件內(nèi)容
- ajax遍歷xml文檔的方法
- PHP遍歷XML文檔所有節(jié)點(diǎn)的方法
- python目錄操作之python遍歷文件夾后將結(jié)果存儲為xml
- asp.net Linq To Xml上手Descendants、Elements遍歷節(jié)點(diǎn)
- Dom遍歷XML的一個(gè)例子,結(jié)果為樹狀結(jié)構(gòu)
- Xml中使用foreach遍歷對象實(shí)現(xiàn)代碼
相關(guān)文章
jquery實(shí)現(xiàn)非疊加式的搜索框提示效果
用JQUERY疊加兩個(gè)INPUT框來實(shí)現(xiàn)登陸中需要輸入的用戶名、密碼來實(shí)現(xiàn)提示與用戶的輸出,使用jquery在一個(gè)INPUT框中即可實(shí)現(xiàn)2014-01-01jQuery實(shí)現(xiàn)點(diǎn)擊該行即可刪除HTML表格行
本節(jié)任務(wù)是從一個(gè)HTML表使用一些時(shí)髦的效果,只要按一下該行的行。以下是實(shí)現(xiàn)這一目標(biāo)的jQuery代碼2014-10-10jquery Tab 選項(xiàng)卡通用函數(shù)
用類作為選擇符雖然效率低點(diǎn)但是 可以多次重用 這個(gè)性質(zhì)不錯(cuò)2010-04-04底部懸浮通欄可以關(guān)閉廣告位的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄撞繎腋⊥诳梢躁P(guān)閉廣告位的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06jQuery設(shè)置與獲取HTML,文本和值的簡單實(shí)例
本篇文章主要是對jQuery設(shè)置與獲取HTML,文本和值的簡單實(shí)例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02jQuery中Ajax全局事件引用方式及各個(gè)事件(全局/局部)執(zhí)行順序
這篇文章主要介紹了jQuery中Ajax全局事件引用方式及各個(gè)事件(全局/局部)執(zhí)行順序的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06jquery 文本上下無縫滾動(dòng),鼠標(biāo)放上去就停止 小例子
jquery 文本上下無縫滾動(dòng),鼠標(biāo)放上去就停止 小例子,需要的朋友可以參考一下2013-06-06