1
我通常不处理VBScript和经典ASP,但我必须对我们的旧网站之一进行一些更改。经典ASP VBScript对象数组
我使用SOAP的Web服务来获取字符串值的数组,但是当我尝试从传统的ASP代码中使用它,它告诉我,这是一个对象
的服务工作,它会返回一个数组字符串,代码是健全的,我只需要知道如何将它从一个对象更改为字符串,我认为。
Web服务的WSDL:
<xs:element name="getProductFunctionsResponse">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
错误
对象不是一个集合
传统的ASP代码:
result2 = soap.getProductFunctions("AEDO")
i = 0
For Each present In result2
If mid(user_auth_key,i,1) = 1 Then
response.write("success")
End If
response.write(present)
response.write("<br />")
i = i+1
Next
VBScript是脚本语言,因此无法执行类型转换,因此问题可能会比您想象的更严重。首先,让我们调试一下:当你有'Response.Write(result2)'你得到了什么?那么'Response.Write(CStr(result2))''?最后'Response.Write(TypeName(result2))'?请让我们知道每一个的输出,这可能会解决问题。 –
+1影子向导。我猜类型名称是String(),VBScript无法处理它。 (如果我没有错)** @ David **您可以添加一个可选参数以向后兼容您的Web服务。如果它是'classic-asp',那么你的web服务会返回一个分隔字符串,而不是'字符串数组'。你可以在经典的asp中分割返回的值,所以它是可迭代的。 –
嗨,大家好,感谢您的回复,我将在大约一个小时内看到此内容,并会报告我的进度。 – David