最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 解析讀取XML文檔 實(shí)例代碼

 更新時(shí)間:2009年07月07日 16:10:13   作者:  
應(yīng)項(xiàng)目之需求,需用JS操作XML文檔,遂上網(wǎng)查資料,感覺這篇文章還不錯(cuò),特轉(zhuǎn)載到此地,與大家共享!
JavaScript解析讀取XML文件,主要就是加載并解析XML文件,然后就可以測試解析的XML文件的內(nèi)容,打印輸出來。
在線演示:http://demo.jb51.net/js/2012/readxml/
注:測試的時(shí)候需要在網(wǎng)站中測試,iis或apache中,注意不要本地雙擊運(yùn)行測試
index.htm
復(fù)制代碼 代碼如下:

<html>
<head>
<title>腳本之家</title>
<script type="text/javascript">
function show()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if(xmlhttp!=null)
{
xmlhttp.open("GET","jb51.xml",false);
xmlhttp.send(null);
var responsexml=xmlhttp.responseXML;
var menus=responsexml.getElementsByTagName("Menus")[0];
var html="";
for(var i=0;i<menus.childNodes.length;i++)
{
var menu=menus.childNodes[i];
html=html+"<h1>"+menu.getAttribute("name")+"</h1><br>";
html=html+"<h2>"+menu.childNodes[0].getAttribute("name")+"</h2><br>";
for(var j=0;j<menu.childNodes[0].childNodes.length;j++)
{
var mi=menu.childNodes[0].childNodes[j];
var url=mi.getAttribute("url");
var txt=mi.childNodes[0].nodeValue;
html=html+" <a href=\""+url+"\">"+txt+"</a><br>";
}
}
document.getElementById("tb").innerHTML=html;
}
else
{
alert("你用的什么瀏覽器?");
}
}
</script>
</head>
<body onload="show()">
<div id="tb"></div>
</body>
</html>

xml文件
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<Menus>
<Menu id="0" name="首頁">
<MenuItemTitle sid="01" mid="0" name="常用選項(xiàng)">
<MenuItem mid="0" tid="01" url="Home.aspx">后臺(tái)首頁</MenuItem>
<MenuItem mid="0" tid="01" url="Test.aspx">測試頁</MenuItem>
</MenuItemTitle>
</Menu>
<Menu id="0" name="試試">
<MenuItemTitle sid="01" mid="0" name="常用選項(xiàng)">
<MenuItem mid="0" tid="01" url="Home.aspx">后臺(tái)首頁</MenuItem>
<MenuItem mid="0" tid="01" url="Test.aspx">測試頁</MenuItem>
</MenuItemTitle>
</Menu>
</Menus>

沒有用TABLE ,是因?yàn)轱@示倒了,所以設(shè)置了一個(gè)變量,然后顯示!值得今后借簽!

下面是另外一個(gè)例子:
編寫了一個(gè)JavaScript的類來實(shí)現(xiàn)讀取一個(gè)XML文件中的數(shù)據(jù),實(shí)現(xiàn)代碼如下所示:
復(fù)制代碼 代碼如下:

<script>
/**
* @author Shirdrn
*/
function XMLDoc(){}; // 定義一個(gè)XMLDoc類
XMLDoc.prototype.xmlFile = ""; // xmlFile為XMLDoc的一個(gè)成員,是指“.xml”文件
XMLDoc.prototype.parseXMLDoc = function(){ // 加載解析XML文件的成員方法
var docParser;
if(window.ActiveXObject) { // IE瀏覽器支持
docParser = new ActiveXObject("Microsoft.XMLDOM");
docParser.async = "false";
docParser.load(this.xmlFile);
return docParser;
}
else if(window.DOMParser) { // Mozillia瀏覽器支持
docParser = new DOMParser()
return docParser.parseFromString(this.xmlFile,"text/xml");
}
else { // 如果不是IE和Mozillia瀏覽器則無法解析,返回false。
return false;
}
}
XMLDoc.prototype.print = function(readTagName,readTagCnt) { // 打印輸出讀取的XML文件的內(nèi)容信息
var xmlDoc = this.parseXMLDoc(); // 調(diào)用成員方法parseXMLDoc()加載解析XML文件
var users = xmlDoc.getElementsByTagName(readTagName); // 獲取指定標(biāo)簽名稱的數(shù)據(jù)的一個(gè)數(shù)組users
for(var i=0 ; i<users.length ; i++) { // 雙重循環(huán)迭代輸出
document.write("<B>第" + (i+1) + "條記錄信息:</B><BR>");
for(var j=0 ; j<readTagCnt ; j++) {
var tagname = users[i].childNodes[j].tagName;
var textvalue = users[i].childNodes[j].text;
document.write(tagname + " = " + textvalue + ".<BR>");
}
}
}

var xmlDoc = new XMLDoc(); // 創(chuàng)建一個(gè)XMLDoc了IDE對(duì)象實(shí)例
xmlDoc.xmlFile = "user.xml"; // 設(shè)置對(duì)象實(shí)例的成員變量的數(shù)據(jù)
xmlDoc.print("user",6); // 打印輸出
</script>

其中,我們測試使用的XML文件user.xml的內(nèi)容如下所示:
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8" ?>
- <users>
- <user>
<id>22240319830000</id>
<name>Shirdrn</name>
<age>26</age>
<gender>男</gender>
<email>shirdrn@hotmail.com</email>
<phone>13843140000</phone>
</user>
- <user>
<id>22040319860001</id>
<name>Linda</name>
<age>23</age>
<gender>女</gender>
<email>linda@hotmail.com</email>
<phone>13843140002</phone>
</user>
</users>

運(yùn)行測試程序,解析結(jié)果輸出如下所示:
復(fù)制代碼 代碼如下:

第1條記錄信息:
id = 22240319830000.
name = Shirdrn.
age = 26.
gender = 男.
email = shirdrn@hotmail.com.
phone = 13843140000.
第2條記錄信息:
id = 22040319860001.
name = Linda.
age = 23.
gender = 女.
email = linda@hotmail.com.
phone = 13843140002.

在解析XML文件的時(shí)候,要保證對(duì)不同類型的瀏覽器提供支持,這里主要對(duì)IE和Mozillia瀏覽器,否則可能無法解析。
關(guān)于其它的說明,可以參看程序中的注釋。

相關(guān)文章

  • 微信小程序canvas實(shí)現(xiàn)手寫簽名

    微信小程序canvas實(shí)現(xiàn)手寫簽名

    這篇文章主要為大家詳細(xì)介紹了微信小程序canvas實(shí)現(xiàn)手寫簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JS 連鎖泡泡 v1.1

    JS 連鎖泡泡 v1.1

    前幾天在朋友的iPhone上面玩了一個(gè)連鎖泡泡游戲,頭腦發(fā)熱就想用js寫一個(gè)。
    2009-09-09
  • 頁面只能打開一次Cooike如何實(shí)現(xiàn)

    頁面只能打開一次Cooike如何實(shí)現(xiàn)

    由于WEBIM處在獨(dú)立頁面,所以如果多次點(diǎn)擊就會(huì)出現(xiàn)多個(gè)頁面,本文將介紹詳細(xì)的解決方法,需要了解的朋友可以參考下
    2012-12-12
  • 使用JavaScript將圖片合并為PDF的實(shí)現(xiàn)

    使用JavaScript將圖片合并為PDF的實(shí)現(xiàn)

    在日常工作中,我們可能需要拍攝一些照片并將圖像合并到PDF文件中,這可以通過許多應(yīng)用來完成,Dynamsoft Document Viewer讓這一操作更加方便,在本文中,我們將使用Dynamsoft Document Viewer創(chuàng)建一個(gè)Web應(yīng)用,用JavaScript將圖像合并到PDF中,需要的朋友可以參考下
    2024-07-07
  • 詳解SPA中前端路由基本原理與實(shí)現(xiàn)方式

    詳解SPA中前端路由基本原理與實(shí)現(xiàn)方式

    這篇文章主要介紹了詳解SPA中前端路由基本原理與實(shí)現(xiàn)方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 一個(gè)html5播放視頻的video控件只支持android的默認(rèn)格式mp4和3gp

    一個(gè)html5播放視頻的video控件只支持android的默認(rèn)格式mp4和3gp

    寫了個(gè)html5播放視頻的video控件,只支持mp4和3gp(android和ios默認(rèn)支持的格式就寫了這個(gè)) ,需要的朋友可以參考下
    2014-05-05
  • 利用js編寫網(wǎng)頁進(jìn)度條效果

    利用js編寫網(wǎng)頁進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了利用js編寫網(wǎng)頁進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 查找頁面中所有類為test的結(jié)點(diǎn)的方法

    查找頁面中所有類為test的結(jié)點(diǎn)的方法

    這篇文章主要介紹了查找頁面中所有類為test結(jié)點(diǎn)的方法,需要的朋友可以參考下
    2014-03-03
  • js的es6常用新特性詳解

    js的es6常用新特性詳解

    ES6(ECMAScript 6,也稱為ES2015)是JavaScript的一個(gè)重要更新版本,引入了許多新的語言特性和改進(jìn),使得JavaScript變得更加現(xiàn)代化、易讀、易維護(hù)和更適合大型應(yīng)用程序的開發(fā),ES6的主要變化歸納為:語法糖、新機(jī)制、更好的語義、更多的內(nèi)置對(duì)象和方法
    2023-11-11
  • 基于javascript實(shí)現(xiàn)放大鏡特效

    基于javascript實(shí)現(xiàn)放大鏡特效

    這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)放大鏡特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評(píng)論

南京市| 万宁市| 石屏县| 襄汾县| 阳谷县| 松溪县| 高州市| 两当县| 弋阳县| 泰兴市| 海伦市| 竹北市| 太保市| 张北县| 岳普湖县| 晋江市| 普陀区| 图木舒克市| 建德市| 调兵山市| 黑河市| 黔南| 绵阳市| 克山县| 华池县| 涪陵区| 宝山区| 开江县| 上杭县| 合江县| 阿坝| 南昌市| 永福县| 扎兰屯市| 博罗县| 山东| 沾化县| 郁南县| 丽江市| 崇明县| 连江县|