一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

利用Excel的VBA來處理XML

 hdzgx 2019-11-22

首先需要引用Microsoft的DLL,打開references管理器

勾上Microsoft XML


接下來便可以使用MSXML DOM(如果不清楚MSXML的,科普http://blog.csdn.net/pony_maggie/article/details/6706422

創(chuàng)建文檔對象、節(jié)點(diǎn)、節(jié)點(diǎn)列表

  1. Dim xmlDom As MSXML2.DOMDocument
  2. Dim xmlNode As MSXML2.IXMLDOMNode
  3. Dim xmlNodeList As MSXML2.IXMLDOMNodeList

加載xml文檔(如果XML文檔里標(biāo)注了DTD或者schema文件,則在相同的目錄下應(yīng)該有相應(yīng)的DTD/schema,否則Loda()無法讀?。?/p>

xmlDom.Load(folder_location + "\wkf_batch_logging_template.xml")
選擇單個(gè)節(jié)點(diǎn)SelectSingleNode( [XPATH] )
Set xmlNode = xmlDom.SelectSingleNode("http://POWERMART/REPOSITORY/FOLDER/WORKFLOW/SESSION")
其中"http://POWERMART/REPOSITORY/FOLDER/WORKFLOW/SESSION"為XPATH表達(dá)式,提供尋找節(jié)點(diǎn)路徑。

選擇多個(gè)節(jié)點(diǎn),selectNodes( [XPATH] ),常用伴隨foreach遍歷

  1. Set xmlNodeList = xmlDom_temp.selectNodes("http://POWERMART/REPOSITORY/FOLDER/WORKFLOW/SESSION/SESSIONEXTENSION")
  2. Set xmlNode = Nothing
  3. For Each xmlNode In xmlNodeList
  4. ' 遍歷內(nèi)容
  5. Next

獲取節(jié)點(diǎn)屬性值
xmlNode.attributes.getNamedItem("TRANSFORMATIONTYPE").nodeValue

替換節(jié)點(diǎn)replaceChild(newNode, oldNode)

  1. Set xmlNode = xmlDom_temp.SelectSingleNode("http://POWERMART/REPOSITORY/FOLDER/WORKFLOW/SESSION")
  2. Set xmlNode_root = xmlDom_temp.SelectSingleNode("http://POWERMART/REPOSITORY/FOLDER/WORKFLOW")
  3. Set xmlNode_wkf = xmlDom_wkf.SelectSingleNode("http://POWERMART/REPOSITORY/FOLDER/WORKFLOW/SESSION")
  4. Set xmlNode_root = xmlNode_root.replaceChild(xmlNode_wkf, xmlNode)

更多MSXML DOM的屬性/方法參考如下:

XML DOM對象屬性

屬性

描述

async

設(shè)置或獲取是否允許以異步方式載入XML文檔

attributes

獲取節(jié)點(diǎn)的屬性列表

childNodes

獲取節(jié)點(diǎn)的子節(jié)點(diǎn)列表

doctype

獲取與文檔關(guān)聯(lián)的文檔類型聲明,不包含聲明則返回null

documentElement

獲取在根節(jié)點(diǎn)中包含數(shù)據(jù)的對象,如果文件中不具有唯一根節(jié)點(diǎn),返回null

firstChild

獲取節(jié)點(diǎn)中的首個(gè)子節(jié)點(diǎn),如果不具有子節(jié)點(diǎn)則返回null

lastChild

獲取節(jié)點(diǎn)中的末個(gè)子節(jié)點(diǎn),如果不具有子節(jié)點(diǎn)則返回null

nextSibling

獲取節(jié)點(diǎn)所在的節(jié)點(diǎn)列表中下一個(gè)節(jié)點(diǎn)

nodeName

獲取節(jié)點(diǎn)的名稱

nodeType

獲取節(jié)點(diǎn)的類型,(參見下表)

nodeValue

獲取文本節(jié)點(diǎn)值

ondataavailable

設(shè)置處理ondataavailable事件的函數(shù)

onreadystatechange

獲取處理onreadystatechange事件的函數(shù)

parentNode

獲取節(jié)點(diǎn)的父節(jié)點(diǎn),如果不具有父節(jié)點(diǎn)則返回null

parseError

獲取DOM解析錯(cuò)誤對象,此對象描述最后解析錯(cuò)誤的信息

previousSibling

獲取節(jié)點(diǎn)所在的節(jié)點(diǎn)列表中上一個(gè)節(jié)點(diǎn)

readyState

獲取XML文檔的載入狀態(tài)。狀態(tài)值:
0-UNINITIALIZED:XML DOM對象已聲明,但未初始化
1-LOADING:文檔載入中,但未開始解析
2-LOADED:部分文檔已經(jīng)加載且進(jìn)行解析,但對象模型尚未生效
3-INTERACTIVE:對已加載的部分文檔有效,此時(shí)對象模型是有效但只讀的
4-COMPLETED:文件已完全加載,加載成功

url

傳回最近一次加載XML文檔的URL。若文檔不由外部載入則返回null

validateOnParse

告訴解析器文件是否有效

xml

獲取節(jié)點(diǎn)的XML描述和所有的子節(jié)點(diǎn)

Node節(jié)點(diǎn)類型說明

Document

文件階層中的根節(jié)點(diǎn)(DOM樹的根節(jié)點(diǎn))

Element

一個(gè)元素

Attr

一個(gè)屬性,注意:屬性與其它節(jié)點(diǎn)類型不同,它們不是同一父節(jié)點(diǎn)的子節(jié)點(diǎn)

ProcessingInstruction

處理指令

Comment

注釋

Text

處于一個(gè)元素或一個(gè)屬性中的文本內(nèi)容(字符數(shù)據(jù))

CDATASection

一塊包含字符的文本區(qū)

Entity

實(shí)體

XML DOM對象方法

abort()

取消一個(gè)正在執(zhí)行的異步下載

appendChild(newNode)

在當(dāng)前節(jié)點(diǎn)末端添加一個(gè)子節(jié)點(diǎn)newNode

cloneNode(flag)

復(fù)制當(dāng)前節(jié)點(diǎn),flag為true,復(fù)制整個(gè)節(jié)點(diǎn),為false則只復(fù)制該節(jié)點(diǎn)及屬性

createAttribute(attrName)

創(chuàng)建屬性attrName

createCDATASection(data)

創(chuàng)建包含指定數(shù)據(jù)的CDATA

createComment(data)

創(chuàng)建包含指定數(shù)據(jù)的注釋

createDocumentFragment()

創(chuàng)建空的文檔片斷

createElement(tagName)

創(chuàng)建元素tagName

createEntityReference(name)

創(chuàng)建名稱為name的實(shí)體參照

createNode(type,name[,nsURL])

創(chuàng)建新節(jié)點(diǎn),type為節(jié)點(diǎn)類型,name為節(jié)點(diǎn)名稱,nsURL為命名空間

createProcessingInstruction(
target,data )

創(chuàng)建處理指令,target為目標(biāo)、名稱或處理指令字符串,data為處理指令值

createTextNode(data)

創(chuàng)建文本節(jié)點(diǎn),data為內(nèi)容

getElementsByTagName(tagName)

獲取標(biāo)記為tagName的元素集合

hasChildNodes()

檢查節(jié)點(diǎn)是否含有子節(jié)點(diǎn)

insertBefore(newNode,theNode)

在節(jié)點(diǎn)theNode前插入新節(jié)點(diǎn)newNode

load(url)

載入url指定的一個(gè)XML文檔

loadXML(xmlString)

載入xmlString指定的XML代碼片段

nodeFromID(id)

取得ID為id的節(jié)點(diǎn)

parsed()

檢查節(jié)點(diǎn)包括其子節(jié)點(diǎn)是否已被解析

removeChild(theNode)

刪除節(jié)點(diǎn)的子節(jié)點(diǎn)theNode

replaceChild(newNode,oldNode)

以節(jié)點(diǎn)newNode替換節(jié)點(diǎn)oldNode

selectNodes(patternString)

取得所有匹配模式patternString的節(jié)點(diǎn)

selectSingleNode(patternString)

取得首個(gè)匹配模式patternString的節(jié)點(diǎn)

transformNode(styleSheet)

以樣式表styleSheet來處理節(jié)點(diǎn)及其子節(jié)點(diǎn)

XML DOM事件

Ondataavailable

在XML文檔有效時(shí)被觸發(fā)

Onreadystatechange

在readyState屬性值改變時(shí)被觸發(fā)

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产亚洲不卡一区二区| 亚洲中文字幕视频在线播放| 国产香蕉国产精品偷在线观看| 欧美日韩无卡一区二区| 视频一区二区黄色线观看| 日本精品中文字幕在线视频| 日本午夜精品视频在线观看| 开心久久综合激情五月天| 亚洲精品国产美女久久久99| 在线懂色一区二区三区精品| 麻豆精品视频一二三区| 亚洲熟女乱色一区二区三区| 老司机精品国产在线视频| 成人国产激情福利久久| 午夜成年人黄片免费观看| 日本不卡视频在线观看| 最近最新中文字幕免费| 成人精品一区二区三区综合| 日韩一区二区三区高清在| 欧美日韩免费黄片观看| 免费黄片视频美女一区| 日本午夜免费观看视频| 亚洲中文字幕视频在线观看| 日本精品理论在线观看| 亚洲中文字幕在线综合视频| 香蕉久久夜色精品国产尤物| 欧美日韩欧美国产另类| 免费大片黄在线观看国语| 一区二区三区日本高清| 中文字幕欧美精品人妻一区| 亚洲欧美一二区日韩高清在线 | 精品亚洲香蕉久久综合网| 亚洲熟女精品一区二区成人| 91麻豆视频国产一区二区| 婷婷亚洲综合五月天麻豆| 国产亚洲欧美一区二区| 国产精品成人一区二区三区夜夜夜 | 精品人妻一区二区三区在线看| 麻豆tv传媒在线观看| 免费性欧美重口味黄色| 男人和女人草逼免费视频 |