C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Next: We pass the StringReader to the XmlTextReader constructor. In the while-loop, we read nodes and proceed if we detect a start element.
StringReaderSwitch: We process each tag name differently in the switch statement. We use ReadString to read in the next node as a string.
String SwitchC# program that uses XmlTextReader
using System;
using System.IO;
using System.Xml;
class Program
{
static void Main()
{
string input = @"<?xml version=""1.0"" encoding=""utf-16""?><List>
<Employee><ID>1</ID><First>David</First>
<Last>Smith</Last><Salary>10000</Salary></Employee>
<Employee><ID>3</ID><First>Mark</First>
<Last>Drinkwater</Last><Salary>30000</Salary></Employee>
<Employee><ID>4</ID><First>Norah</First>
<Last>Miller</Last><Salary>20000</Salary></Employee>
<Employee><ID>12</ID><First>Cecil</First>
<Last>Walker</Last><Salary>120000</Salary></Employee>
</List>";
using (StringReader stringReader = new StringReader(input))
using (XmlTextReader reader = new XmlTextReader(stringReader))
{
while (reader.Read())
{
if (reader.IsStartElement())
{
switch (reader.Name)
{
case "Employee":
Console.WriteLine();
break;
case "ID":
Console.WriteLine("ID: " + reader.ReadString());
break;
case "First":
Console.WriteLine("First: " + reader.ReadString());
break;
case "Last":
Console.WriteLine("Last: " + reader.ReadString());
break;
case "Salary":
Console.WriteLine("Salary: " + reader.ReadString());
break;
}
}
}
}
}
}
Output
ID: 1
First: David
Last: Smith
Salary: 10000
ID: 3
First: Mark
Last: Drinkwater
Salary: 30000
ID: 4
First: Norah
Last: Miller
Salary: 20000
ID: 12
First: Cecil
Last: Walker
Salary: 120000
But: If execution speed is not important, other types such as XElement can lead to faster development.
XElement