<VENDOR1>
<VENDOR2 IDNUMBER="lka">
<PRODUCTINFO PRODUCT_NAME="11" PRODUCT_VERSION="x" DESC="11" CISCO_PN="ada" VENDOR_PN="asd" SN="asd" PASSFAIL="asd1" STATION_NAME="nn" DATETIME="2017/05/27 T11:52:06" OPERATOR="333" TESTAREA="01" MISC="">
</PRODUCTINFO>
</VENDOR2>
</VENDOR1>
如上是一個444.xml檔案,我想在EXCEL VBA里面加載這個檔案,怎么獲取PRODUCTINFO 這個節點里面PRODUCT_NAME屬性的值“11”呢?找了相關資料,加載XML檔案是用不是用如下代碼:
Set xDoc = CreateObject("Microsoft.XMLDOM")
xDoc.async = False
xDoc.Load ("D:\444.xml")
請問后面的代碼需要怎么寫?我想把獲取的“11”值賦值給變數"A1",msgbox顯示出來。
uj5u.com熱心網友回復:
后面加上這一句 MsgBox XML檔案.selectSingleNode("//PRODUCTINFO").Attributes.getNamedItem("PRODUCT_NAME").Text
uj5u.com熱心網友回復:
qq574221329非常感謝你的回復,可以抓到值了,我還想請問一下,比如我選擇的XML檔案要是里面沒有這個節點話?我需要怎么先判斷這個檔案里面是否有這個節點和屬性,以及屬性里面是否有值?需要怎么寫代碼先判斷?
uj5u.com熱心網友回復:
If XML檔案.selectSingleNode(節點名).Attributes.getNamedItem(屬性名) Is Nothing Then '物件為空則沒有這個屬性
If XML檔案.selectSingleNode(節點名) Is Nothing Then '物件為空則沒有這個節點
uj5u.com熱心網友回復:
圍觀一下…………
uj5u.com熱心網友回復:
'工具/參考/選擇“Microsoft XML vb6.0"Sub MyLoadXML()
Dim oMyXmlDoc As DOMDocument
Dim oMyXmlNode As IXMLDOMNode
Dim A1 As String
'創建DOMdocument實體并加載XML檔案
Set oMyXmlDoc = New DOMDocument
oMyXmlDoc.async = False
oMyXmlDoc.Load (ThisWorkbook.Path & "\444.xml") 'XML檔案的路徑,此處與EXCLE放置在相同檔案夾下
'創建XPATH查找XML檔案節點資料
Set oMyXmlNode = oMyXmlDoc.SelectSingleNode("//PRODUCTINFO/@PRODUCT_NAME")
'確認所查找的節點是否存在
If oMyXmlNode Is Nothing Then
MsgBox "無所查找的節點", vbOKCancel
Exit Sub
End If
'顯示所查找節點的屬性資料
A1 = oMyXmlNode.Text
MsgBox "PRODUCT_NAME屬性的值為:" & A1
'清除
Set oMyXmlNode = Nothing
Set oMyXmlDoc = Nothing
End Sub
以上利用DOM及XPATH加載和查詢的一般方法,僅供參考
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/54333.html
標籤:VBA
