本文實例講述了jQuery加載及解析XML文件的方法。分享給大家供大家參考,具體如下:
1、簡述
XML(eXtensible Markup Language)即可擴展標記語言,與HTML一樣,都是屬于SGML標準通用語言。
2、 Content-Type
很多情況下XML文件不能正常解析都是由于Content-Type沒有設置好。如果Content-Type本身就是一個XML文件則不需要設置;如果是由后臺程序動態生成的,那么就需要設置Content-Type為“text/xml”,否則jQuery會以默認的“text/html”方式處理,導致解析失敗。以下是幾種常見語言中設置Content-Type的方式。
header("Content-Type:text/xml"); //PHP
response.ContentType = "text/xml"; //ASP
response.setContentType("text/xm"); //JSP
3、創建實例XML文檔(Student.xml)
<?xml version="1.0" encoding="utf-8" ?><stulist> <student email="peter@163.com"> <name>peter</name> <id>1</id> </student> <student email="ken@163.com"> <name>ken</name> <id>2</id> </student></stulist>
4、獲取XML
$(document).ready(function() { $.ajax({ url: '/xml/Student.xml', type: 'GET', dataType: 'xml', timeout: 1000, //設定超時 cache: false, //禁用緩存 error: function(xml) { alert("加載XML文檔出錯!"); }, success: GetStudentComplete //設置成功后回調函數 });});
通過JQuery的Ajax函數進行讀取。
5、 解釋XML
//獲取XML成功后回調函數function GetStudentComplete(xml) { $(xml).find("student").each(function(i) { //查找所有student節點并遍歷 var id = $(this).children("id"); //獲得子節點 var id_vaule = id.text(); //獲取節點文本 var email_vaule = $(this).attr("email"); //獲取節點的屬性 alert(id_vaule); alert(email_vaule); });}
解析XML文檔與解析DOM一樣,也可以用find()、children()等函數來解析和用each()方法來進行遍歷,另外也可以用text()和attr()方法來獲取節點文本和屬性。
PS:這里再為大家提供幾款關于xml操作相關在線工具供大家參考使用:
在線XML/JSON互相轉換工具:
http://tools.VeVB.COm/code/xmljson
在線格式化XML/在線壓縮XML:
http://tools.VeVB.COm/code/xmlformat
XML在線壓縮/格式化工具:
http://tools.VeVB.COm/code/xml_format_compress
xml代碼在線格式化美化工具:
http://tools.VeVB.COm/code/xmlcodeformat
更多關于jQuery相關內容感興趣的讀者可查看本站專題:《jQuery操作xml技巧總結》、《jQuery操作json數據技巧匯總》、《jQuery擴展技巧總結》、《jQuery常用插件及用法總結》、《jQuery常見經典特效匯總》及《jquery選擇器用法總結》
希望本文所述對大家jQuery程序設計有所幫助。
新聞熱點
疑難解答