jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法示例
本文實(shí)例講述了jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法。分享給大家供大家參考,具體如下:
用jquery遍歷xml網(wǎng)上已經(jīng)有很多, 但是看了好多文章, 對(duì)于不指定屬性名稱(chēng)的遍歷方法卻沒(méi)有
研究了一下, 好像jquery沒(méi)有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)級(jí)別
var M_DOT = 1;
//遞歸函數(shù), 用于遍歷XML, 同時(shí)打印出來(lái)
function fn(obj){
//定義一個(gè)變量, 用于縮進(jìn)
var dotString = "";
//根據(jù)縮進(jìn)量, 得到縮進(jìn)的長(zhǎng)度
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, 分別表示為屬性的名稱(chēng), 和屬性值
$(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有無(wú)子DOM
if( obj.length > 0 ){
//如果有, 遍歷之
obj.children().each(function(i){
//縮進(jìn)量加一
M_DOT++;
//遞歸遍歷子DOM
fn($(this));
//縮進(jìn)量加一
M_DOT--;
})
}else{
//如果沒(méi)有子DOM, 返回false
return false;
}
}
//程序入口
$(document).ready(function() {
//ajax獲取xml數(shù)據(jù), 詳細(xì)用法見(jiàn)jquery手冊(cè)
$.get('config.xml', function(d){
//len = $(d).find("*").length;
//找到xml頂級(jí)結(jié)點(diǎn). ('*:first'):就是查找第一個(gè)DOM. 詳細(xì)說(shuō)明見(jiàn)jquery手冊(cè)
//find, children(), each, 以及后面用到的 append 等請(qǐng)查閱jquery手冊(cè)
$(d).find('*:first').children().each(function(i){
//找到頂級(jí)結(jié)點(diǎn)的子結(jié)點(diǎn), 并把子結(jié)點(diǎn)對(duì)象傳給fn函數(shù)
fn($(this));
});
});
});
</script>
附一個(gè)XML文件
請(qǐng)取名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)在線(xiàn)工具供大家參考使用:
在線(xiàn)XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
在線(xiàn)格式化XML/在線(xiàn)壓縮XML:
http://tools.jb51.net/code/xmlformat
XML在線(xiàn)壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress
xml代碼在線(xiàn)格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《jQuery操作xml技巧總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery常見(jiàn)經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家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é)果存儲(chǔ)為xml
- asp.net Linq To Xml上手Descendants、Elements遍歷節(jié)點(diǎn)
- Dom遍歷XML的一個(gè)例子,結(jié)果為樹(shù)狀結(jié)構(gòu)
- Xml中使用foreach遍歷對(duì)象實(shí)現(xiàn)代碼
相關(guān)文章
jQuery使用prepend()方法在元素前添加內(nèi)容用法實(shí)例
這篇文章主要介紹了jQuery使用prepend()方法在元素前添加內(nèi)容的方法,實(shí)例分析了prepend方法追加內(nèi)容的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
jQuery學(xué)習(xí)筆記之Helloworld
剛學(xué)習(xí)jQuery,覺(jué)得有的東西確實(shí)有必要寫(xiě)下來(lái),加深下記憶,本文純屬給自己寫(xiě)的,希望大家不要見(jiàn)笑。2010-12-12
jQuery中toggle()函數(shù)的使用實(shí)例
關(guān)于jQuery中的toggle()函數(shù),相信大家都非常的了解,網(wǎng)上也有許多的相關(guān)教程,今天要給大家分享的是在實(shí)際的項(xiàng)目中toggle()的使用方法,需要的小伙伴可以參考下。2015-04-04
JQuery以JSON方式提交數(shù)據(jù)到服務(wù)端示例代碼
這篇文章主要介紹了JQuery如何以JSON方式提交數(shù)據(jù)到服務(wù)端,需要的朋友可以參考下2014-05-05
Jquery增加鼠標(biāo)中間功能mousewheel的實(shí)例代碼
這篇文章介紹了Jquery增加鼠標(biāo)中間功能mousewheel的實(shí)例代碼,有需要的朋友可以參考一下2013-09-09

