日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
JavaScript解析XML的方法總結(jié)

最近一個(gè)項(xiàng)目中要用到樹形列表,本來是用mztree的,但數(shù)據(jù)用了xml,本來xml就是樹形目錄,就打算用JavaScript直接解析xml文件了,網(wǎng)上找到一些JavaScript操作xml的方法,在此做一個(gè)總結(jié)。

十余年的文安網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整文安建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“文安網(wǎng)站設(shè)計(jì)”,“文安網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

我的xml文件Login.xml如下:

<?xml version="1.0" encoding="utf-8" ?>

<Login>

<Character>

<C Text="熱血" Value="0"></C>

<C Text="弱氣" Value="1"></C>

<C Text="激情" Value="2"></C>

<C Text="冷靜" Value="3"></C>

<C Text="冷酷" Value="4"></C>

</Character>

<Weapon>

<W Text="光束劍" Value="0"></W>

<W Text="光束配刀" Value="1"></W>

</Weapon>

<EconomyProperty>

<P Text="平均型" Value="0"></P>

<P Text="重視攻擊" Value="1"></P>

<P Text="重視敏捷" Value="2"></P>

<P Text="重視防御" Value="3"></P>

<P Text="重視命中" Value="4"></P>

</EconomyProperty>

</Login>

現(xiàn)在我需要對(duì)這個(gè)xml文件的內(nèi)容進(jìn)行操作。

首先,我們需要加載這個(gè)xml文件,JavaScript中加載xml文件,是通過XMLDOM來進(jìn)行的:

// 加載xml文檔

loadXML = function(xmlFile)

{

var xmlDoc;

if(window.ActiveXObject)

{

xmlDoc = new ActiveXObject('Microsoft.XMLDOM');

xmlDoc.async = false;

xmlDoc.load(xmlFile);

}

else if (document.implementation&&document.implementation.createDocument)

{

xmlDoc = document.implementation.createDocument('', '', null);

xmlDoc.load(xmlFile);

}

else

{

return null;

}

return xmlDoc;

}

xml文件對(duì)象出來了, 接下去我就要對(duì)這個(gè)文檔進(jìn)行操作了。

比如說,我們現(xiàn)在需要得到節(jié)點(diǎn)Login/Weapon/W的第一個(gè)節(jié)點(diǎn)的屬性,那么我們可以如下進(jìn)行:

// 首先對(duì)xml對(duì)象進(jìn)行判斷

checkXMLDocObj = function(xmlFile)

{

var xmlDoc = loadXML(xmlFile);

if(xmlDoc==null)

{

alert('您的瀏覽器不支持xml文件讀取,于是本頁面禁止您的操作,推薦使用IE5.0以上可以解決此問題!');

window.location.href='/Index.aspx';

}

return xmlDoc;

}

// 然后開始獲取需要的Login/Weapon/W的第一個(gè)節(jié)點(diǎn)的屬性值

var xmlDoc = checkXMLDocObj('/EBS/XML/Login.xml');

var v = xmlDoc.getElementsByTagName('Login/Weapon/W')[0].childNodes.getAttribute('Text')

而我在我的程序中的寫法是這樣子的,當(dāng)然我在程序中的寫法是已經(jīng)應(yīng)用到實(shí)際中的了.一并給出來,以供查看。

initializeSelect = function(oid, xPath)

{

var xmlDoc = checkXMLDocObj('/EBS/XML/Login.xml');

var n;

var l;

var e = $(oid);

if(e!=null)

{

n = xmlDoc.getElementsByTagName(xPath)[0].childNodes;

l = n.length;

for(var i=0; i

{

var option = document.createElement('option');

option.value = n[i].getAttribute('Value');

option.innerHTML = n[i].getAttribute('Text');

e.appendChild(option);

}

}

}

上面的訪問代碼中,我們是通過xmlDoc.getElementsByTagName(xPath)來進(jìn)行的。

還可以通過xmlDoc.documentElement.childNodes(1)..childNodes(0).getAttribute('Text')進(jìn)行訪問。

一些常用方法:

◆ xmlDoc.documentElement.childNodes(0).nodeName,可以得到這個(gè)節(jié)點(diǎn)的名稱;

◆ xmlDoc.documentElement.childNodes(0).nodeValue,可以得到這個(gè)節(jié)點(diǎn)的值. 這個(gè)值是來自于這樣子的xml格式:<a>b</b>, 于是可以得到b這個(gè)值;

◆ xmlDoc.documentElement.childNodes(0).hasChild,可以判斷是否有子節(jié)點(diǎn)。

根據(jù)我的經(jīng)驗(yàn),最好是使用getElementsByTagName(xPath)的方法對(duì)節(jié)點(diǎn)進(jìn)行訪問,因?yàn)檫@樣子可以直接通過xPath來定位節(jié)點(diǎn),這樣子會(huì)有更好的性能。

【編輯推薦】

  1. 如何使用C#與XML創(chuàng)建動(dòng)態(tài)分層菜單
  2. 通過Java編程處理XML服務(wù)定義
  3. 在ASP.NET中使用Treeview控件和XML

本文名稱:JavaScript解析XML的方法總結(jié)
標(biāo)題路徑:http://m.5511xx.com/article/cdopgps.html