我有一個功能api_request
這需要API方法作爲參數,並返回XMLTextReader
xml解析錯誤處理或如何將XMLTextReader的光標重新啓動?
Shared Function api_request(method As String) As XmlTextReader
request_text = method & ".xml"
url = "https://api.vk.com/method/" & request_text & "&access_token=" & token
Return New XmlTextReader(url)
End Function
我呼籲來自不同地方的這種功能,使請求的網站和API取決於方法結果被解析非常不同。
因此,在每一個方法我有這樣的事情:
Dim s As Xml.XmlReader = api_request("users.get")
While s.Read
If s.NodeType = XmlNodeType.Element Then
If s.Name = "user" Then
curr_user=s.ReadElementContentAsString
ElseIf s.Name = "error" Then
error_handler(s, "user.get")
End If
End If
End While
正如你可以看到,我的代碼ElseIf s.Name = "error" Then error_handler(s, "user.get")
。這是因爲當錯誤發生,服務器總是返回是這樣的:
<error>
<error_code>4</error_code>
<error_msg>Incorrect signature</error_msg>
</error>
這在error_handler
子分析,並根據錯誤下列行爲選擇。
此代碼的工作,但我要檢查,如果我遇到的錯誤一樣,ElseIf s.Name = "error"
每時間,但所有的方法調用api_request
功能。在返回Reader之前是否可以檢查api_request函數中的錯誤?問題是如果我在那裏開始閱讀XML,並且沒有錯誤,我不能將Reader定位到開始位置。
感謝,這正是我一直在尋找 –