最近做的這個(gè)項(xiàng)目使用了大量的JavaScript,同時(shí)需要做一個(gè)Metrics Framework框架,功能主要是解析一個(gè)XML文件生成一個(gè)JS文件,但同時(shí)也需要寫(xiě)一些JS函數(shù)解析XML文件節(jié)點(diǎn),結(jié)合JsUnit測(cè)試這些JS函數(shù).因此把JavaScript解析XML知識(shí)點(diǎn)總結(jié)一些重要的出來(lái),與大家分享一下!!!
1.JAVASCRIPT中的創(chuàng)建對(duì)象
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
2.創(chuàng)建解析器對(duì)象
set objXml=CreateObject("Microsoft.XMLDOM")
objXml.async="false"
objXml.load("test.xml") 裝載xml文件
3.根據(jù)絕對(duì)路徑裝載xml文件
objXml.load(Server.MapPath("test.xml"))
4.查找某一節(jié)點(diǎn)"NewList"
Set objRootsite = xmlDoc.getElementsByTagName("NewList")
objNextRootsiteName = xmlDoc.getElementsByTagName("NewList").item(0).nodeName
5.查找某一節(jié)點(diǎn)"NewList"
Set objRootsite = objXml.documentElement.selectSingleNode("NewList")
document.write(objRootsite.nodeName) '當(dāng)前節(jié)點(diǎn)名稱
objNextRootsite = objRootsite.childNodes.item(1) '查找"NewList"的第一子節(jié)點(diǎn)
objNextRootsiteText = objNextRootsite.childNodes.item(1).text '查找"NewList"的第一子節(jié)點(diǎn)的節(jié)點(diǎn)內(nèi)容
6.獲取當(dāng)前節(jié)點(diǎn)
xmlChildNode = objXml.documentElement.childNodes
document.Write (xmlChildNode.nodename) '當(dāng)前節(jié)點(diǎn)名稱
document.write (xmlChildNode.text) '當(dāng)前節(jié)點(diǎn)文本內(nèi)容
7. 將Xml中的文本內(nèi)容轉(zhuǎn)換為Html中的內(nèi)容
frm.label.innerText = xmlChildNode.item(1).text
8.獲取屬性名為name的屬性值
xmlChildNode.GetAttributeNode("name").Nodevalue
9.獲取xmlChildNode節(jié)點(diǎn)的子節(jié)點(diǎn)數(shù)量
xmlChildNode.length
10.取出一個(gè)節(jié)點(diǎn)的屬性集合
set objnodes=objXml.documentElement.SelectSingleNode("http://people/man").GetAttributeNode("name").attributes
for each element in objnodes
response.write element.nodename 屬性名
response.write element.nodevalue 屬性值
xmlDoc.getElementsByTagName("from").item(0).text
xmlDoc.removeChild objRootsite 刪除某個(gè)節(jié)點(diǎn)
11.其它一些與錯(cuò)誤有關(guān)的解析
objXml.parseError 錯(cuò)誤接受容器
objXml.parseError.errorCode 返回長(zhǎng)整型錯(cuò)誤代碼
objXml.parseError.reason 返回字符串型錯(cuò)誤原因
objXml.parseError.line 返回長(zhǎng)整型錯(cuò)誤行號(hào)
objXml.parseError.linePos 返回長(zhǎng)整型錯(cuò)誤行字符位置
objXml.parseError.srcText 返回錯(cuò)誤所在行的源代碼
objXml.parseError.url 返回url裝載文檔指針---最近一份含有解析錯(cuò)誤的XML文檔的URL地址
objXml.parseError.filePos 返回長(zhǎng)整型錯(cuò)誤文件位置---在文檔中的絕對(duì)字符位置