VBA创建XML,但需要CSV
我有一个VBA脚本,它将调用Web服务并将数据保存到XML文件中。如何修改脚本以将数据保存为CSV文件而不是XMLVBA创建XML,但需要CSV,xml,vba,soap,Xml,Vba,Soap,我有一个VBA脚本,它将调用Web服务并将数据保存到XML文件中。如何修改脚本以将数据保存为CSV文件而不是XML 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/ClientS
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
子调用\u管道\u宏()
作为字符串的Dim sURL
作为字符串的Dim sEnv
Dim xmlhtp作为新的MSXML2.XMLHTTP
Dim xmlDoc作为新的DOMDocument
苏尔=”http://service.leads360.com/ClientService.asmx"
sEnv=“”
sEnv=sEnv&“
sEnv=sEnv&“
sEnv=sEnv&“
sEnv=sEnv&“vtorralbes@globalhealtheducation.com"
sEnv=sEnv&“XXXXX”
sEnv=sEnv&“565”
sEnv=sEnv&“
sEnv=sEnv&“
sEnv=sEnv&“
使用xmlhtp
.打开“post”,sURL,False
.setRequestHeader“主机”、“service.leads360.com”
.setRequestHeader“内容类型”、“文本/xml;字符集=utf-8”
.setRequestHeader“soapAction”https://service.leads360.com/GetReportResults"
.setRequestHeader“接受编码”、“压缩”
1.发送sEnv
xmlDoc.LoadXML.responseText
xmlDoc.Save“X:\share\Reporting Database\XML Files”和“\565\u pipeline\u report.XML”
以
端接头
在这里可以找到回复示例:
看起来Web服务只能返回soap xml。如前所述,您必须遍历已加载在
xmlDoc
中的XML字符串,并根据需要输出值,以便为每条记录创建一个CSV字符串,用vbCrLf(换行符)分隔,然后另存为文本文件。如果数据以XML形式返回,则必须将该内容转换为逗号分隔格式并保存到文件中。如果看不到XML的布局,很难说得更具体。谢谢Tim…这是我的问题。我可以让数据返回并另存为CSV,而不是以XML的形式返回吗?这是由web服务控制的-如果它只支持以XML的形式返回数据,那么您就必须这样做。确实,为什么要将其另存为CSV?理论上,它将是文本文件中的相同数据,其格式可能无法用于所需的目的。根据XML的布局,您可以引用库(MSXML)并通过VBA操作XML文件。向我们展示XML以及所需的输出。否则几乎帮不上忙。