簡體   English   中英

VBA-Excel:從XML文件讀取數據

[英]VBA-Excel: Read Data from XML File

我有以下來自REST調用的XML數據,

 <?xml version="1.0" encoding="UTF-8"?>
<response>
    <result>
        <cs>1</cs>                             
        <cs>2</cs>
        <cs>3</cs>
        <cs>4</cs>
    </result>
    <result>
        <br>A</br>                             
        <br>B</br>
    </result>
</response>

我想以Excel格式Excel格式讀取此數據

並且這里的cs和br標簽的長度不是固定的,對於每個數據來說都是不同的。

這樣的事情應該為您工作。 請注意,我不必理會每個單元格的格式:首先,請執行以下步驟:單擊工具>引用。 檢查這些庫-Microsoft WinHttp Services版本5.1-Microsoft XML v6.0

 Sub TestXML()
    URL = "https://example.abc.com" 'Your URL
    AuthorizationCode = "Basic <Password>" 'Please put only encrypted password

    Dim ws As Worksheet
    Dim objHTTP As New WinHttp.WinHttpRequest
    Dim jsonString As String
    Dim Resp As New DOMDocument
    Dim Result As IXMLDOMNode
    Dim i As Integer, j As Integer

    objHTTP.Open "get", URL, False
    objHTTP.SetRequestHeader "Accept", "application/xml"
    objHTTP.SetRequestHeader "Content-Type", "application/xml"
    objHTTP.SetRequestHeader "Authorization", AuthorizationCode
    objHTTP.Send

    Debug.Print objHTTP.Status
    Debug.Print objHTTP.ResponseText

    Set ws = Sheets("sheet1")
    ws.Select
    Range("A1").Select
    Cells.Clear
    Resp.LoadXML objHTTP.ResponseText
    Set lists = Resp.DocumentElement

    x = 2
    y = 1
    For Each listNode In lists.ChildNodes
        x = 2
        Cells(1, y).Value = lists.ChildNodes(y - 1).ChildNodes(0).BaseName
        For Each fieldNode In listNode.ChildNodes
            Cells(x, y).Value = fieldNode.Text
            x = x + 1
        Next fieldNode
        y = y + 1
    Next listNode
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM