从VBA中导航IE XML文档?

时间:2012-09-17 11:29:41

标签: xml excel vba excel-vba

我正在尝试从Google的Map API获取lat / long值。我可以毫不费力地在Excel中创建IE对象并打开浏览器,但我有时间浏览返回的XML文档以获取我需要的值。

我创建了HTMLDocument,引用似乎有效,但我很难理解如何导航它。有没有办法获取整个HTML输出的字符串?从那以后我就能得到我需要的东西。

1 个答案:

答案 0 :(得分:0)

使用MSXML - 您需要在Excel VBA IDE的工具/参考中引用Microsoft XML。

您可以从文件(Load)或字符串(LoadXML)加载XML。在我的示例中,我从文件加载:

<?xml version="1.0" encoding="utf-8"?>
<testxml>
    <tests>
        <test nr="1">Number 1</test>
        <test nr="2">Number 2</test>
        <test nr="3">Number 3</test>
        <test nr="4">Number 4</test>
    </tests>
</testxml>

加载文件的VBA:

Option Explicit

Sub TestXML()
    '***** Declare document
    Dim oXmlDoc As DOMDocument
    Dim bRet As Boolean

    '***** Create empty document
    Set oXmlDoc = New DOMDocument

    '***** Load XML from file
    bRet = oXmlDoc.Load("c:\temp\test.xml")

    '***** Manipulate XML
    MsgBox oXmlDoc.Text
    MsgBox oXmlDoc.XML
    MsgBox oXmlDoc.SelectSingleNode("//testxml/tests/test[@nr='3']").Text

    '***** Clean up
    Set oXmlDoc = Nothing
End Sub