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 に答える