成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript解析XML的方法總結(jié)

開發(fā) 前端
本文作者根據(jù)自己的實(shí)際工作經(jīng)驗(yàn),對(duì)JavaScript解析XML的方法進(jìn)行了總結(jié),希望可以給您帶來幫助。

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

我的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<l; 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
責(zé)任編輯:楊鵬飛 來源: 網(wǎng)易博客
相關(guān)推薦

2020-04-07 00:10:16

javascrip語言異步

2010-07-26 15:06:29

Perl解析XML文件

2013-06-08 17:09:35

Android開發(fā)移動(dòng)開發(fā)XML解析

2010-06-12 16:30:51

UML設(shè)計(jì)

2009-09-09 14:04:18

C# XML解析XML解析方法

2010-10-08 12:46:27

Javascriptreplace()

2009-09-09 14:20:18

C# XML解析XML解析方法

2011-06-22 15:21:08

XML

2009-03-31 13:12:30

解析XMLJava

2011-04-08 09:16:12

JavaScript

2020-12-21 16:35:51

JavaScript網(wǎng)頁截屏代碼

2012-08-16 15:56:33

XML

2010-10-08 14:27:25

JavascriptSplit

2022-12-01 08:30:10

JavaScript構(gòu)造函數(shù)

2009-09-14 14:47:57

XML節(jié)點(diǎn)

2011-02-22 14:10:25

PHPXML

2012-05-23 13:17:43

JavaJdomXML

2013-06-08 11:04:18

Android開發(fā)Pull解析XMLAndroid XML

2017-05-23 15:47:04

JavaScriptthis解析

2013-09-04 10:41:08

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产乱码精品一区二区三区中文 | 国产精品精品视频一区二区三区 | 91高清视频在线观看 | 怡红院免费的全部视频 | 久久精品国产99国产精品 | 久久av一区二区三区 | 国产精品中文字幕在线观看 | 丁香婷婷综合激情五月色 | 精品国产18久久久久久二百 | 欧美精品欧美精品系列 | 97久久精品午夜一区二区 | 欧美精品一区二区三区在线 | 国产成人综合在线 | 国产三区精品 | 亚洲国产精品99久久久久久久久 | 99久久国产综合精品麻豆 | 欧美日韩亚洲成人 | 二区久久 | 日韩欧美中文 | 亚洲 欧美 另类 日韩 | 在线国产精品一区 | 国产精品a久久久久 | 欧美成人a∨高清免费观看 色999日韩 | 91看片免费版 | 成人黄色在线视频 | 成人免费视频网站在线看 | 日韩91在线 | www.9191| 色爽女| 欧美亚洲综合久久 | 久久躁日日躁aaaaxxxx | 麻豆亚洲 | 久久6视频 | 欧美一区二区三区精品免费 | 日韩一区和二区 | 中文字幕av一区 | 亚洲午夜精品视频 | 成人污污视频 | www.久久久久久久久久久 | 亚洲精品视频免费 | 国产亚洲欧美日韩精品一区二区三区 |