我在许多其他项目中使用了相同的代码并且没有任何问题,但由于某种原因它在这里不起作用。每次我到达"如果不是.selectSingleNode(strNode)是什么都没有"它什么都没有回来,让我把它扔到别的地方。我已经能够验证下面列出的返回的XML以及正在读取它的代码块。
不幸的是,我必须在VB6中开发它以保持与其他产品的兼容性。
守则如下:
With objXMLResponse
Dim strNode As String
strNode = "//PingResponse/PingResult/ResultCode"
If Not .selectSingleNode(strNode) Is Nothing Then
If .selectSingleNode(strNode).Text = "Success" Then
MsgBox "We have succeded", vbOKOnly
Else
MsgBox "We have failed", vbOKOnly
End If
Else
MsgBox "We have failed", vbOKOnly
End If
End With
肥皂反应如下:
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PingResponse xmlns="http://avatax.avalara.com/services">
<PingResult>
<TransactionId>784293066</TransactionId>
<ResultCode>Success</ResultCode>
<Version>14.5.0.53</Version>
</PingResult>
</PingResponse>
</s:Body>
</s:Envelope>
提前感谢您提供任何帮助。
答案 0 :(得分:0)
我有下面的代码并且它的工作正常(我正在使用你提供的数据样本点击&#34;我们已经成功了#34;消息)
您是否忘记加载XML文件? 您的代码未指定如何加载XML数据。如果从文件加载,您是否可以访问它?
Option Explicit
Private Sub Command1_Click()
Dim objXMLResponse As New MSXML2.DOMDocument
Dim success As Boolean
success = objXMLResponse.Load("C:\Temp\123.txt")
If success Then
With objXMLResponse
Dim strNode As String
strNode = "//PingResponse/PingResult/ResultCode"
If Not .selectSingleNode(strNode) Is Nothing Then
If .selectSingleNode(strNode).Text = "Success" Then
MsgBox "We have succeded", vbOKOnly
Else
MsgBox "We have failed", vbOKOnly
End If
Else
MsgBox "We have failed", vbOKOnly
End If
End With
Else
MsgBox "Error loading XML file"
End If
End Sub