【问题标题】:XML Deserialization IssueXML 反序列化问题
【发布时间】:2008-11-19 22:02:25
【问题描述】:

我有以下从 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 属性的属性。这里没什么特别的,但它不想工作。

任何帮助都会很棒。

【问题讨论】:

  • 您还应该发布 cResponseMessage 类的定义。这可能就是断开连接的地方。

标签: .net vb.net xml-serialization


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 2018-10-26
      • 1970-01-01
      • 2014-10-04
      相关资源
      最近更新 更多