sRecieved = "<XmlClient>2.0</XmlClient><XmlVersion>3.0</XmlVersion>"
Dim xml As New XmlDocument();
xml.LoadXml(sRecieved);
有多个根元素.....我想要 xmlclient 值和 xmlversion 值
是的,您的数据不是有效的 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
)
发生此错误是因为您的 xml 字符串中没有根元素。
试试这个
sRecieved = "<xmlroot><XmlClient>2.0</XmlClient><XmlVersion>3.0</XmlVersion></xmlroot>"
Dim xml As New XmlDocument()
xml.LoadXml(sRecieved)