Попробуйте xml linq:
Imports System.Xml
Imports System.Xml.Linq
Module Module1
Const FILENAME = "c:\temp\test.xml"
Sub Main()
Dim settings As New XmlReaderSettings
settings.ConformanceLevel = ConformanceLevel.Fragment
Dim reader As XmlReader = XmlReader.Create(FILENAME, settings)
Dim dict As New Dictionary(Of String, String)
While (Not reader.EOF)
If reader.Name <> "Field" Then
reader.ReadToFollowing("Field")
End If
If (Not reader.EOF) Then
Dim field As XElement = CType(XElement.ReadFrom(reader), XElement)
dict.Add(CType(field.Attribute("name"), String), CType(field, String))
End If
End While
End Sub
End Module
Код проще с одним элементом root:
Imports System.Xml
Imports System.Xml.Linq
Module Module1
Const FILENAME = "c:\temp\test.xml"
Sub Main()
Dim doc As XDocument = XDocument.Load(FILENAME)
Dim dict As Dictionary(Of String, String) = doc.Descendants("Field") _
.GroupBy(Function(x) CType(x.Attribute("name"), String), Function(y) CType(y, String)) _
.ToDictionary(Function(x) x.Key, Function(y) y.FirstOrDefault())
End Sub
End Module