我有下面的代碼,它作爲一個下拉列表中選擇事件,格式化XML響應VB.NET
'calling ersal webservice for banks
Dim service As New IMPALA.IMPALA
Dim bank As String
bank = service.Remittance_Bank(username, password, pin, code, txtbenfadd.Text)
'MsgBox(bank)
'formating the xml responce
Dim formater As StringBuilder
formater = New StringBuilder()
formater.Append("<?xml version=""1.0"" encoding=""UTF-8""?><root>")
formater.Append(bank)
formater.Append(""" /></root>")
'MsgBox(formater.ToString)
Dim xmlDoc = XElement.Parse(formater.ToString)
Dim root As IEnumerable(Of XElement) = xmlDoc.Elements()
Dim names As StringBuilder
Dim names1 As StringBuilder
names = New StringBuilder
names1 = New StringBuilder
For Each row In root
Dim attr As XAttribute
Dim attr2 As XAttribute
For Each attr In root.Attributes("BANK_CODE").AsEnumerable
names.Append(attr.Value + "|")
Next
For Each attr2 In root.Attributes("BANK_NAME").AsEnumerable
names1.Append(attr2.Value + "|")
Next
Next
Dim strArr() As String
Dim strArr1() As String
strArr = names.ToString.Split("|")
strArr1 = names1.ToString.Split("|")
Dim itemsList As ArrayList
itemsList = New ArrayList()
itemsList.Add(strArr)
itemsList.Add(strArr1)
'MsgBox(names.ToString)
For count = 0 To strArr1.Length - 1
ddlbank.Items.Add(strArr1(count))
ddlbnkcode.Items.Add(strArr(count))
Next
我只是取決於來自Web服務的一種XML響應發現的錯誤。下面是一個示例響應
<row BANK_CODE="111" BANK_NAME="KENYAN BANK"/>
<row BANK_CODE="121" BANK_NAME="EAST BANK"/>
<row BANK_CODE="185" BANK_NAME="NAKUMATT BANK"/>
<row BANK_CODE="125" BANK_NAME="KENYAN CONSUMER BANK"/>
<row BANK_CODE="174
當響應是上面的代碼工作 因爲我已經與格式追加,但在響應很好地關閉,像下面
<row BANK_CODE="111" BANK_NAME="KENYAN BANK"/>
<row BANK_CODE="121" BANK_NAME="EAST BANK"/>
<row BANK_CODE="185" BANK_NAME="NAKUMATT BANK"/>
<row BANK_CODE="125" BANK_NAME="KENYAN CONSUMER BANK"/>
<row BANK_CODE="174" BANK_NAME="TUSKYS BUYERS BANK">
我得到以下錯誤:
Name cannot begin with the
'"'
character, hexadecimal value 0x22. Line 1, position 2078.Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details:
System.Xml.XmlException
: Name cannot begin with the'"'
character, hexadecimal value 0x22. Line 1, position 2078.Source Error:
Line 83: formater.Append(""" />") Line 84: 'MsgBox(formater.ToString) Line 85: Dim xmlDoc = XElement.Parse(formater.ToString) Line 86: Dim root As IEnumerable(Of XElement) = xmlDoc.Elements() Line 87: Dim names As StringBuilder
任何幫助,請在我可以檢查XML響應之前,我可以追加結尾部分或捕獲異常,並繼續。
因此,您有一個函數'Remittance_Bank'返回一個無效的XML,在中間裁剪,然後通過添加缺少的雙引號和關閉標記來完成此XML。當函數返回有效的完整XML時,代碼將失敗。這應該是相反的,你應該在不完整的XML上失敗,刪除添加雙引號的代碼,並修復'Remittance_Bank'以始終返回有效的XML。 – GSerg 2014-09-25 11:44:41