2010-10-28 41 views
0

問題,我有以下代碼從一個Web服務器與XMLHTTP

<%@ LANGUAGE=VBScript%> 
<% 
vCustomerUserName = "name" 
vCustomerPassword = "password" 
vEventID = 123456 
vEmail = "[email protected]" 
vPassword = "1122334455" 

Response.Buffer=False 

Dim MyConnection 
Dim TheURL 

''# Specifying the URL 
dataURL = "http://www.regonline.com/authorization.asmx/authorizeMemberWithEmailAddress" 

Set MyConnection = Server.CreateObject("Microsoft.XMLHTTP") 
''# Connecting to the URL 
MyConnection.Open "POST", dataURL, False 
MyConnection.setRequestHeader "Content-type", "application/x-www-form-urlencoded" 

''# Sending and getting data 
strQueryString = "customerUserName=" & vCustomerUserName & "&customerPassword=" & vCustomerPassword & "&eventID=" & vEventID & "&emailAddress=" & vEmail & "&password=" & vPassword 

''# MyConnection.Send 
MyConnection.Send strQueryString 

TheData = MyConnection.responseText 

''# Set the appropriate content type 
Response.ContentType = MyConnection.getResponseHeader("Content-type") 


Response.Write (TheData) 

Set MyConnection = Nothing 
%> 

抓住細節如果我在它返回這似乎是一個xml文檔瀏覽器中運行這個頁面。我需要做的是提取特定節點的值,然後發送到瀏覽器的形式

response.write firstName=bob&lastName=smith 

任何人都可以請幫助我,這是推動我瘋了,已經花了很長時間,到目前爲止獲得無處。我似乎無法從服務器訪問作爲xml文檔的答覆,並希望得到任何幫助。

感謝

回答

1

可以使用responseXML屬性而不是responseText。這是一個IXMLDOMDocument對象的實例。然後,您可以使用XPath通過selectSingleNode方法選擇需要的數據。

如果響應的內容類型未設置爲text/xmlapplication/xml,則這不起作用。如果是這種情況,您仍然可以使用MSXML將responseText加載到DOMDocument中並選擇所需的數據。

需要注意的另一件事是,通常不推薦使用服務器端應用程序中的XMLHTTP對象。它意味着從客戶端使用,因爲依賴於WinInet。您應該使用ServerXMLHttp。它具有相同的功能,但取決於WinHTTP而不是WinInet。請參閱FAQ瞭解更多信息。