Suppose I have
following XML fragment:
<Authors>
<Author>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
</Author>
<Author>
<FirstName>Jane</FirstName>
<LastName>Eod</LastName>
</Author>
</Authors>
Now, how can I loop through my collection of authors and
for each author retrieve its first and last name and put them in a variable
strFirst and strLast?
Imports System
Imports System.Xml
Public Class XMLApp
Public Sub YourMethod(ByVal strFirst As [String], ByVal strLast As [String])
' Do something
with strFirst and strLast.
Console.WriteLine("{0}, {1}",
strLast, strFirst)
End Sub 'YourMethod
Public Sub ProcessXML(ByVal xmlText As [String])
Dim _doc As New XmlDocument
_doc.LoadXml(xmlText)
' alternately,
_doc.Load( _strFilename); to read from a file.
Dim _fnames As XmlNodeList
= _doc.GetElementsByTagName("FirstName")
Dim _lnames As XmlNodeList
= _doc.GetElementsByTagName("LastName")
' I'm assuming
every FirstName has a LastName in this example, your requirements may vary. //
for ( int _i = 0; _i < _fnames.Count; ++_i )
If (True) Then
YourMethod(_fnames(_i).InnerText, _lnames(_i).InnerText)
End If
Dim Main As [String]()
If (True) Then
Dim _app As New XMLApp
' Passing XML
text as a String, you can also use the
' XMLDocument::Load( ) method to read the XML from a file.
_app.ProcessXML(" <Authors>
<Author>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
</Author>
<Author>
<FirstName>Jane</FirstName>
<LastName>Eod</LastName>
</Author>
</Authors> ")
End If
End Sub 'ProcessXML
End Class 'XMLApp
' end XMLApp
XMLApp.vb
Remember to
/reference the System.Xml.dll on the command-line to build XMLApp.vb: vbc.exe /r:System.Xml.dll
XMLApp.vb.