0

我有以下从 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>

我的代码如下所示,数据是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属性。这里没有什么花哨的,但它不想工作。

任何帮助都会很棒。

4

2 回答 2

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
于 2008-11-19T22:29:36.103 回答
0

在我看来,XML 文档 (2, 2) 中有一个错误,就像 <messages> 中的 m。

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

于 2008-11-19T22:07:19.440 回答