1
sRecieved = "<XmlClient>2.0</XmlClient><XmlVersion>3.0</XmlVersion>" 
Dim xml As New XmlDocument();    
xml.LoadXml(sRecieved);

複数のルート要素があります.....xmlclient値とxmlversion値が必要です

4

2 に答える 2

4

そうです、あなたのデータ有効な XML ドキュメントではありません。(エラー メッセージは非常に明確です。トップレベルの要素が複数あります。)ダミーのルート要素を追加することで、有効なドキュメントにすることができます。

xml.LoadXml("<root>" & sReceived & "</root>")

...しかし、データを送信しているものを変更する機会があれば、実際の XML ドキュメントを送信した方がよいでしょう。

編集: の代わりに LINQ to XML を使用できる場合はXmlDocument、クライアント番号とバージョン番号を取得するのは簡単です。たとえば、テキストとして:

Dim clientVersion = doc.Root.Element("XmlClient").Value
Dim xmlVersion = doc.Root.Element("XmlVersion").Value 

編集:さて、あなたが行き詰まっているならXmlDocument、私はあなたが使用できると信じています:

Dim clientVersionNode = doc.DocumentElement.GetElementsByTagName("XmlClient")(0)
Dim clientVersion = (CType(clientVersionNode, XmlElement)).InnerText

(同様にxmlVersion)

于 2012-07-25T07:24:31.330 に答える
-1

このエラーは、xml 文字列にルート要素がないために発生します。

これを試して

sRecieved = "<xmlroot><XmlClient>2.0</XmlClient><XmlVersion>3.0</XmlVersion></xmlroot>"

Dim xml As New XmlDocument()

xml.LoadXml(sRecieved)
于 2012-07-25T07:26:09.153 に答える