C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Here: We call XmlReader.Create to open an XmlReader on the target file. Next, we loop through the entire file using While reader.Read().
Loop: We detect start elements using IsStartElement. Then, we can access the Name property on the XmlReader to get the current tag name.
Attribute: To get an attribute, use the indexer reader("name") where "name" is the attribute identifier.
Tip: You can specialize logic based on what the current element is—just use If-statements or Select Case statements.
If ThenSelect CaseVB.NET program that uses XmlReader
Imports System.Xml
Module Module1
Sub Main()
' Create an XML reader.
Using reader As XmlReader = XmlReader.Create("C:\Codex.xml")
While reader.Read()
' Check for start elements.
If reader.IsStartElement() Then
' See if Codex element or article element.
If reader.Name = "Codex" Then
Console.WriteLine("Start <Codex> element.")
ElseIf reader.Name = "article" Then
Console.WriteLine("Start <article> element.")
' Get name attribute.
Dim attribute As String = reader("name")
If attribute IsNot Nothing Then
Console.WriteLine(" Has attribute name: {0}", attribute)
End If
' Text data.
If reader.Read() Then
Console.WriteLine(" Text node: {0}", reader.Value.Trim())
End If
End If
End If
End While
End Using
End Sub
End Module
Input text: Codex.xml
<?xml version="1.0" encoding="utf-8" ?>
<Codex>
<article name="backgroundworker">
Example text.
</article>
<article name="threadpool">
More text.
</article>
<article></article>
<article>Final text.</article>
</Codex>
Output
Start <Codex> element.
Start <article> element.
Has attribute name: backgroundworker
Text node: Example text.
Start <article> element.
Has attribute name: threadpool
Text node: More text.
Start <article> element.
Text node:
Start <article> element.
Text node: Final text.