API XML / JSON响应和VBA来解析它

时间:2016-03-06 08:11:54

标签: xml excel-vba vba excel

我有API,它根据带有标记和符号的构造URL提供股票价格,此API返回基于Web,并返回<root></root>中的XML / JSON格式数据及其中的数据。以下是一个例子。

 <root>
     <n5323 type="float">31.35</n5323 >
     <n3221 type="float">9.06</n3221 >
 </root>

我想使用VBA(31.359.06)在Excel中检索价格,请帮我解决这个问题。并非n5323n3221是动态生成的,而且每次都不同。

我的VBA代码如下

Dim strXMLSite As String
Dim objXMLHTTP As MSXML2.XMLHTTP
Dim objXMLDoc As MSXML2.DOMDocument
Dim objXMLNodexbrl As MSXML2.IXMLDOMNode
Dim objXMLNodeDIIRSP As MSXML2.IXMLDOMNode
Set objXMLHTTP = New MSXML2.XMLHTTP
Set objXMLDoc = New MSXML2.DOMDocument

strXMLSite = "http://testserver/volume/daily?token=' + token$ + '&ticker='+Symbol$+'"

objXMLHTTP.Open "POST", strXMLSite, False
objXMLHTTP.send
objXMLDoc.LoadXML (objXMLHTTP.responseText)

Set objXMLNodexbrl = objXMLDoc.SelectSingleNode("root")
Set objXMLNodeDIIRSP = objXMLNodexbrl.SelectSingleNode("root")

Worksheets("Sheet1").Range("J1").Value = objXMLNodeDIIRSP.Text

1 个答案:

答案 0 :(得分:0)

如果您不知道有哪些节点名称,则枚举节点。

Dim n As IXMLDOMNode
For Each n In objXMLDoc.documentElement.childNodes
  Debug.Print n.nodeName, n.Text
Next