faizan ali faizan ali - 1 year ago 224
Vb.net Question

There are multiple root elements load xml

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

There are multiple root elements .....i want xmlclient value and xmlversion value

Answer Source

Well yes, your data isn't a valid XML document. (The error message is pretty clear - you've got multiple top-level elements.) You could make it a valid document by adding a dummy root element:

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

... but if you get the chance to change whatever's sending the data, it would be better if it sent an actual XML document.

EDIT: If you're able to use LINQ to XML instead of XmlDocument, getting the client number and the version number are easy. For example, as text:

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

EDIT: Okay, if you're stuck with XmlDocument, I believe you could use:

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

(and likewise for xmlVersion)

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download