我有一个XML字符串,其中包含我需要写入日志表的数据。
XML看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<response success="true">
<messages>
<message key="warning-unmapped-item">Message 1</message>
<message key="warning-unmapped-org">Message 2</message>
</messages>
我需要&#34;响应成功&#34;标记和每个消息键/文本
我已经能够将XML加载到dom并获取一些数据,但不是全部。 :
Dim Variables As IXMLDOMNodeList
Dim variable As IXMLDOMNode
Dim log As MSXML2.DOMDocument
Set log = New MSXML2.DOMDocument
log.loadXML (message)
Set Variables = log.selectNodes("//messages")
For Each variable In Variables
Debug.Print variable.selectNodes("message").Item(0).Text
Debug.Print variable.selectNodes("message").Item(1).Text
Next
我可以使用上面的语法获得前两个消息,但我宁愿遍历消息而不是直接引用它们,因为我不知道会有多少消息。此外,我需要键和文本。有更好的方法吗?
答案 0 :(得分:2)
你已经非常接近,只需要添加几个。
使用ndMessage(i).getAttribute(key)获取密钥属性。
strXPath =“// messages / message” 设置ndMessages = xmlRates.selectNodes(strXPath)
For i = 0 To ndMessages.Length - 1
Debug.Print ndMessages(i).Text & " key:" & ndMessages(i).getAttribute( "key" )
Next i