根据匹配的字符串检索XML到excel

时间:2015-08-09 21:33:59

标签: xml vba

我有一个日志文件,其中包含多个xml请求和响应。我的要求是找到一个字符串,它是否存在于日志文件中的任何xml reqsts / respon中,如果使用VBA(Excel宏)存在字符串,则检索xml。有人可以帮忙吗?

注意:日志文件不是.xml格式。它的文件扩展名为.LOG.Right,现在我将其作为文本文件处理

日志文件的示例格式:

[8/9/2015:12:00]<?xml version="1.0" encoding="UFT-8"?>
    <soapenv:Envelope xmlns="https://schemas.xmlsoap.org/"><soapenv:Header.....>
    .
    .
    <validity message-id="ABC12345678">
    .
    </validity>
    .
    .</soapenv:envelope>
    [8/9/2015:12:44]<?xml version="1.0" encoding="UFT-8"?>
    <soapenv:Envelope xmlns="https://schemas.xmlsoap.org/"><soapenv:Header.....>
    .
    .
    <validity message-id="PQR12345678">
    .
    </validity>
    .
    .</soapenv:envelope>

我正在寻找使用message-id = PQR12345678

检索xml

1 个答案:

答案 0 :(得分:0)

此代码可能会帮助您入门。

&#13;
&#13;
'add reference Microsoft XML, v6.0
Public Sub DownloadFile()
    Dim objWHTTP As Object
    Dim strPath As String
    Dim arrData() As Byte
    Dim lngFreeFile As Long
    
    
    
    On Error Resume Next
        Set objWHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")
        If Err.Number <> 0 Then
            Set objWHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
        End If
    On Error GoTo 0
    
    URL = "Enter your URL or filename here"
    
    objWHTTP.Open "GET", URL, False
    objWHTTP.send
    arrData = objWHTTP.responseBody
    strData = StrConv(arrData, vbUnicode)
    
    Dim xmlbook As New MSXML2.DOMDocument60

    xmlbook.LoadXML strData
End sub​
&#13;
&#13;
&#13;