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