-1

我有这个 VBA 脚本,它将调用 Web 服务并将数据保存到 XML 文件中。除了 XML,我如何修改脚本以将数据另存为 CSV 文件?

Sub Call_Pipeline_Macros()

    Dim sURL As String
    Dim sEnv As String
    Dim xmlhtp As New MSXML2.XMLHTTP
    Dim xmlDoc As New DOMDocument
    sURL = "http://service.leads360.com/ClientService.asmx"

    sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
    sEnv = sEnv & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    sEnv = sEnv & "  <soap:Body>"
    sEnv = sEnv & "    <GetReportResults xmlns=""https://service.leads360.com"">"
    sEnv = sEnv & "      <username>vtorralbes@globalhealtheducation.com</username>"
    sEnv = sEnv & "      <password>XXXXX</password>"
    sEnv = sEnv & "      <reportId>565</reportId>"
    sEnv = sEnv & "    </GetReportResults>"
    sEnv = sEnv & "  </soap:Body>"
    sEnv = sEnv & "</soap:Envelope>"

    With xmlhtp
        .Open "post", sURL, False
        .setRequestHeader "Host", "service.leads360.com"
        .setRequestHeader "Content-Type", "text/xml; charset=utf-8"
        .setRequestHeader "soapAction", "https://service.leads360.com/GetReportResults"
        .setRequestHeader "Accept-encoding", "zip"
        .send sEnv
        xmlDoc.LoadXML .responseText
        xmlDoc.Save "X:\share\Reporting Database\XML Files" & "\565_pipeline_report.xml"

    End With
End Sub
4

1 回答 1

0

可以在此处找到回复示例:http ://service.leads360.com/Documentation/Examples/Client/GetReportResults.templateValues.txt

看起来 web 服务不能返回除了肥皂 xml 之外的任何东西。如前所述,您必须遍历已加载的 XML 字符串xmlDoc并根据需要输出值,以便为每条记录创建一个 CSV 字符串,用 vbCrLf(换行符)分隔,然后另存为文本文件。

于 2012-06-29T09:45:50.577 回答