XML反序列化问题

时间:2008-11-19 22:02:25

标签: .net vb.net xml-serialization

我有以下从Web服务发送给我的xml。我正在使用.NET来反序列化它,但我得到一个例外,说它的格式错误。 There is an error in XML document (2, 2)现在,如果我理解正确的话,它并不喜欢它找到第一个<error>节点。

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

我的代码看起来像这样,数据是上面XML的String版本:

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属性的类。没什么好看的,但它不想工作。

任何帮助都会很棒。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

XML文档(2,2)中有一个错误在我看来就像是&lt; messages&gt;中的m。

也许您没有在cResponseMessage中正确设置XmlRoot?