2008-11-19 204 views
0

我有以下xml從Web服務發送給我。我使用.NET來反序列化它,但我得到一個異常,說它格式錯誤。 There is an error in XML document (2, 2)現在,如果我理解正確,它不喜歡它找到第一個<error>節點。XML反序列化問題

<?xml version="1.0" encoding="UTF-8"?> 
<messages xmlns="http://www.w3.org/1999/xml"> 
    <error>error text</error> 
    <message>message text</message> 
</messages> 

我的代碼看起來是這樣的,數據是所述String版本上述XML的:

Dim resp As cResponseMessage 
Dim sr As New StringReader(data) 
Dim xs As New XmlReaderSettings() 

Dim xd As New XmlSerializer(GetType(cResponseMessage)) 
resp = xd.Deserialize(XmlTextReader.Create(sr, xs)) 

cResponseMessage是簡單地用一個XMLRoot屬性和2種性質隨XMLElement屬性的類。這裏沒什麼特別的,但它不想工作。

任何幫助將是偉大的。

+0

你還應該張貼cResponseMessage類的定義。這可能是脫節的地方。 – dpurrington 2008-11-19 22:05:31

回答

1

這個類的工作對我來說:

<XmlRoot(Namespace:="http://www.w3.org/1999/xml", ElementName:="messages")> _ 
Public Class cResponseMessage 

    <XmlElement> _ 
    Public Property [error] As String 
     Get 
     Set(ByVal value As String) 
    End Property 

    <XmlElement> _ 
    Public Property message As String 
     Get 
     Set(ByVal value As String) 
    End Property 
End Class 
+0

噢。需要一個命名空間。謝謝! – 2008-11-20 13:06:56

0

在XML文檔(2,2)中看起來像是在<消息>中的m。

也許你沒有在cResponseMessage中正確設置你的XmlRoot?