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

JavaScript解析XML的方法總結

開發 前端
本文作者根據自己的實際工作經驗,對JavaScript解析XML的方法進行了總結,希望可以給您帶來幫助。

最近一個項目中要用到樹形列表,本來是用mztree的,但數據用了xml,本來xml就是樹形目錄,就打算用JavaScript直接解析xml文件了,網上找到一些JavaScript操作xml的方法,在此做一個總結。

我的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>

現在我需要對這個xml文件的內容進行操作。

首先,我們需要加載這個xml文件,JavaScript中加載xml文件,是通過XMLDOM來進行的:

// 加載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文件對象出來了, 接下去我就要對這個文檔進行操作了。

比如說,我們現在需要得到節點Login/Weapon/W的第一個節點的屬性,那么我們可以如下進行:

// 首先對xml對象進行判斷

checkXMLDocObj = function(xmlFile)

{

var xmlDoc = loadXML(xmlFile);

if(xmlDoc==null)

{

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

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

}

return xmlDoc;

}

// 然后開始獲取需要的Login/Weapon/W的第一個節點的屬性值

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

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

而我在我的程序中的寫法是這樣子的,當然我在程序中的寫法是已經應用到實際中的了.一并給出來,以供查看。

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)來進行的。

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

一些常用方法:

◆ xmlDoc.documentElement.childNodes(0).nodeName,可以得到這個節點的名稱;

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

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

根據我的經驗,最好是使用getElementsByTagName(xPath)的方法對節點進行訪問,因為這樣子可以直接通過xPath來定位節點,這樣子會有更好的性能。

【編輯推薦】

  1. 如何使用C#與XML創建動態分層菜單
  2. 通過Java編程處理XML服務定義
  3. 在ASP.NET中使用Treeview控件和XML
責任編輯:楊鵬飛 來源: 網易博客
相關推薦

2020-04-07 00:10:16

javascrip語言異步

2010-07-26 15:06:29

Perl解析XML文件

2013-06-08 17:09:35

Android開發移動開發XML解析

2010-06-12 16:30:51

UML設計

2009-09-09 14:04:18

C# XML解析XML解析方法

2010-10-08 12:46:27

Javascriptreplace()

2009-03-31 13:12:30

解析XMLJava

2011-06-22 15:21:08

XML

2009-09-09 14:20:18

C# XML解析XML解析方法

2011-04-08 09:16:12

JavaScript

2020-12-21 16:35:51

JavaScript網頁截屏代碼

2012-08-16 15:56:33

XML

2010-10-08 14:27:25

JavascriptSplit

2022-12-01 08:30:10

JavaScript構造函數

2009-09-14 14:47:57

XML節點

2011-02-22 14:10:25

PHPXML

2013-06-08 11:04:18

Android開發Pull解析XMLAndroid XML

2012-05-23 13:17:43

JavaJdomXML

2017-05-23 15:47:04

JavaScriptthis解析

2013-09-04 10:41:08

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品| 91在线一区二区 | 精品一区二区在线看 | 日韩精品无码一区二区三区 | 91成人在线视频 | 午夜视频在线观看网址 | 久久久久亚洲av毛片大全 | 黄色国产视频 | 性在线 | 视频二区 | 亚洲一区二区在线播放 | 欧美电影免费观看 | 国产1区在线 | 欧美日韩中文国产一区发布 | 成人在线小视频 | 精品久久国产 | 日韩av成人在线观看 | 美国av毛片| 九九热精 | 成人免费激情视频 | 精品av | 一色桃子av一区二区 | 午夜精品网站 | 亚洲三区在线观看 | 日本一区二区高清视频 | 一区二区三区视频在线观看 | 一区二区三区四区在线播放 | 国产亚洲黄色片 | 成人黄色电影在线观看 | 亚洲在线一区 | 亚洲一区二区三区视频 | 色视频网站免费 | 精品久久中文字幕 | 国产精品久久久久无码av | 成年无码av片在线 | 在线视频一区二区三区 | 日本黄色不卡视频 | 伊人狠狠操 | 亚洲视频免费在线 | 亚洲人人 | 一级黄在线观看 |