我有这个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
答案 0 :(得分:0)
可以在此处找到答复的示例:http://service.leads360.com/Documentation/Examples/Client/GetReportResults.templateValues.txt
看起来webservice看起来不像soap xml那样返回任何东西。如上所述,您必须遍历已加载到xmlDoc
中的XML字符串并根据需要输出值,以便为每个记录创建一个CSV字符串,以vbCrLf(换行符)分隔,然后另存为文本文件。 / p>