jquery官網(wǎng)有個(gè)plugin把string轉(zhuǎn)化成xml的
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比安陸網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式安陸網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋安陸地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
jQuery.createXMLDocument = function(string){
var browserName = navigator.appName;
var doc;
if (browserName == 'Microsoft Internet Explorer'){
doc = new ActiveXObject('Microsoft.XMLDOM');
doc.async = 'false'
doc.loadXML(string);
} else {
doc = (new DOMParser()).parseFromString(string, 'text/xml');
}
return doc;
}
把json中的對(duì)應(yīng)內(nèi)容先轉(zhuǎn)成xml如下
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title無標(biāo)題文檔/title
/head
style
.backcolor {
background-color:#00CCCC;
}
.hover {
background-color:#FF6600;
}
/style
script src="js/jquery-1.4.4.js" language="javascript" type="text/javascript"/script
script language="javascript" type="text/javascript"
$(document).ready(function(){
$.getJSON("url", function(data){
var doc = $.createXMLDocument(data.msg);
$("li/li")
.html($(doc).find("prov").attr("text"))
.appendTo("#dmsg ul");
$(doc).find("county").each(function(){
var county = $(this).attr("text");
$("li/li")
.html(county)
.appendTo("#dmsg ul");
});
});
});
jQuery.createXMLDocument = function(string){
var browserName = navigator.appName;
var doc;
if (browserName == 'Microsoft Internet Explorer'){
doc = new ActiveXObject('Microsoft.XMLDOM');
doc.async = 'false'
doc.loadXML(string);
} else {
doc = (new DOMParser()).parseFromString(string, 'text/xml');
}
return doc;
}
/script
body
div id="dmsg"
ul/ul
/div
/body
/html
假設(shè)json數(shù)據(jù)如下
{"msg":"prov state=\"checked\" id=\"110000\" text=\"北京市\(zhòng)"city state=\"checked\" id=\"110100\" text=\"市轄區(qū)\"county state=\"checked\" id=\"110101\" text=\"東城區(qū)\"/county state=\"checked\" id=\"110102\" text=\"西城區(qū)\"http://city/prov"}
1.通過jquery的$.ajax()請(qǐng)求該xml資源,里面參數(shù)dataType:xml,如此,即可在本地js代碼上遍歷此xml文檔。把文件顯示于頁面。做了修改,刪除操作后,把數(shù)據(jù)用JSON方式傳遞到后臺(tái),進(jìn)行文件讀寫操作。
$.ajax({
url?:?rootPath?+?"/xml.php?act=read",
dataType?:?"json",
success?:?function(response)?{
if?(response)?{
alert("保存成功");
}
else
alert("保存失敗"?);
}
}
});
xml文件\內(nèi)容讀取
1、讀取xml文件
$.get("xmlfile.xml",function(xml){
//xml即為可以讀取使用的內(nèi)容,具體讀取見第2點(diǎn)
});
2、讀取xml內(nèi)容
如果讀取的xml是來于xml文件,這結(jié)合上面的那點(diǎn),處理如下
$.get("xmlfile.xml",function(xml){????
$(xml).find("item").length;????
});
如果讀取的是xml字符串,則要注意一點(diǎn),xml字符串的必然被”xml”和”/xml”包圍才可以被解析
$("xmlrootitem/item/root/xml").find("item").length;?二、解析xml內(nèi)容示例xml:?xml?version="1.0"?encoding="utf-8"??fields
field?Name="Name1"
fieldnamedsname/fieldname
datatype字符/datatype
/field
field?Name="Name2"
fieldnamedstype/fieldname
datatype字符/datatype
/field/fields以下是解析示例代碼$(xml).find("field").each(function()?{
var?field?=?$(this);
var?fName?=?field.attr("Name");//讀取節(jié)點(diǎn)屬性
var?dataType?=?field.find("datatype").text();//讀取子節(jié)點(diǎn)的值
});
另外說明一點(diǎn)js是沒有權(quán)限去直接操作本地或者服務(wù)器的xml文件的,要通過 ActiveX來實(shí)現(xiàn),這個(gè)涉及到瀏覽器安全的。
用JavaScript解析XML數(shù)據(jù)是常見的編程任務(wù),JavaScript能做的,JQuery當(dāng)然也能做。下面我們來總結(jié)幾個(gè)使用JQuery解析XML的例子。
第一種方案:
script
type="text/javascript"
$(document).ready(function()
{
$.ajax({
url:
'',
dataType:
'xml',
success:
function(data){
//console.log(data);
$(data).find("channel").find("item").each(function(index,
ele)
{
var
titles
=
$(ele).find("title").text();
var
links
=
$(ele).find("link").text();
console.log(titles+'-----');
$("#noticecon").find('ol').append('lia
href="'+links+'"'+titles+'/a/li');
});
}
});
})
/script
div
id="noticecon"
ol
/ol
/div
第二種方案:
script
type="text/javascript"
$.get("",
function(data){
$(data).find('channel').find('item').each(function(index,
ele){
var
titles
=
$(ele).find('title').text();
var
links
=
$(ele).find('link').text();
$("#noticecon").find('ol').append('lia
href="'+links+'"'+titles+'/a/li');
})
});
/script
div
id="noticecon"
ol
/ol
/div
一般步驟如下:
1.
讀取xml文件
$.get("xmlfile.xml",function(xml){
//xml即為可以讀取使用的內(nèi)容,具體讀取見第2點(diǎn)
});
2.
讀取xml內(nèi)容
如果讀取的xml是來于xml文件,這結(jié)合上面的那點(diǎn),處理如下:
$.get("xmlfile.xml",function(xml){
$(xml).find("item").length;
});
如果讀取的是xml字符串,則要注意一點(diǎn),xml字符串的必然被"xml"和"/xml"包圍才可以被解析
$("xmlrootitem/item/root/xml").find("item").length;
解析xml內(nèi)容:
示例xml:
?xml
version="1.0"
encoding="utf-8"
?
fields
field
Name="Name1"
fieldnamedsname/fieldname
datatype字符/datatype
/field
field
Name="Name2"
fieldnamedstype/fieldname
datatype字符/datatype
/field
/fields
以下是解析示例代碼:
$(xml).find("field").each(function()
{
var
field
=
$(this);
var
fName
=
field.attr("Name");//讀取節(jié)點(diǎn)屬性
var
dataType
=
field.find("datatype").text();//讀取子節(jié)點(diǎn)的值
});
以上這篇JQuery解析XML數(shù)據(jù)的幾個(gè)簡(jiǎn)單實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
本文實(shí)例講述了jQuery讀取XML文件的方法。分享給大家供大家參考,具體如下:
?xml
version="1.0"
encoding="utf-8"
?
taxrates
taxrate
id="1"
lower0/lower
upper500/upper
rate5/rate
buckle0/buckle
/taxrate
taxrate
id="2"
lower500/lower
upper2000/upper
rate10/rate
buckle25/buckle
/taxrate
taxrate
id="3"
lower2000/lower
upper5000/upper
rate15/rate
buckle125/buckle
/taxrate
taxrate
id="4"
lower5000/lower
upper20000/upper
rate20/rate
buckle375/buckle
/taxrate
taxrate
id="5"
lower20000/lower
upper40000/upper
rate25/rate
buckle1375/buckle
/taxrate
taxrate
id="6"
lower40000/lower
upper60000/upper
rate30/rate
buckle3375/buckle
/taxrate
taxrate
id="7"
lower60000/lower
upper80000/upper
rate35/rate
buckle6375/buckle
/taxrate
taxrate
id="8"
lower80000/lower
upper100000/upper
rate40/rate
buckle10375/buckle
/taxrate
taxrate
id="9"
lower100000/lower
upper99999999/upper
rate45/rate
buckle15375/buckle
/taxrate
/taxrates
function
StandardTaxRate()
{
$.ajax({
url:
"/Resource/salaryTaxRate.xml",
dataType:
'xml',
type:
'GET',
timeout:
2000,
error:
function(xml)
{
alert("加載XML
文件出錯(cuò)!");
},
success:
function(xml)
{
$(xml).find("taxrate").each(function(i)
{
var
oid
=
$(this).attr("id");
var
lower
=
$(this).children("lower").text();
var
upper
=
$(this).children("upper").text();
var
rate
=
$(this).children("rate").text();
var
buckle
=
$(this).children("buckle").text();
///后續(xù)操作。。。
});
}
});
}
PS:這里再為大家提供幾款關(guān)于xml操作相關(guān)在線工具供大家參考使用:
在線XML/JSON互相轉(zhuǎn)換工具:
在線格式化XML/在線壓縮XML:
XML在線壓縮/格式化工具:
xml代碼在線格式化美化工具:
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery操作xml技巧總結(jié)》、《jQuery操作json數(shù)據(jù)技巧匯總》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。