Mega Code Archive

 
Categories / C# / XML
 

Illustrates the XmlTextReader class

/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /*   Example20_2.cs illustrates the XmlTextReader class */ using System; using System.Xml; public class Example20_2  {     // Display a node and its children     private static void AddChildren(XmlNode xnod, int level)     {         XmlNode xnodWorking;         String pad = new String(' ', level * 2);         Console.WriteLine(pad + xnod.Name + "(" + xnod.NodeType.ToString()           + ": " + xnod.Value + ")");                  // if this is an element, extract any attributes         if (xnod.NodeType == XmlNodeType.Element)         {             XmlNamedNodeMap mapAttributes = xnod.Attributes;             for(int i=0; i<mapAttributes.Count; i+=1)             {                 Console.WriteLine(pad + " " + mapAttributes.Item(i).Name                      + " = " +  mapAttributes.Item(i).Value);             }         }                  // call recursively on all children of the current node         if (xnod.HasChildNodes)         {             xnodWorking = xnod.FirstChild;             while (xnodWorking != null)             {                 AddChildren(xnodWorking, level+1);                 xnodWorking = xnodWorking.NextSibling;             }         }     }     public static void Main()      {         // use an XmlTextReader to open an XML document         XmlTextReader xtr = new XmlTextReader(@"c:\temp\Cust4.xml");         xtr.WhitespaceHandling = WhitespaceHandling.None;         // load the file into an XmlDocuent         XmlDocument xd = new XmlDocument();         xd.Load(xtr);         // get the document root node         XmlNode xnodDE = xd.DocumentElement;         // recursively walk the node tree         AddChildren(xnodDE, 0);         // close the reader         xtr.Close();     } } //File: Cust4.xml /* <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="Cust.xsl"?> <NewDataSet>     <Customers>         <CustomerID>ALFKI</CustomerID>         <CompanyName>Alfreds Futterkiste</CompanyName>         <ContactName>Maria Anders</ContactName>         <ContactTitle>Sales Representative</ContactTitle>         <Address>Obere Str. 57</Address>         <City>Berlin</City>         <PostalCode>12209</PostalCode>         <Country>Germany</Country>         <Phone>030-0074321</Phone>         <Fax>030-0076545</Fax>     </Customers>     <Customers>         <CustomerID>BONAP</CustomerID>         <CompanyName>app</CompanyName>         <ContactName>Laurence Lebihan</ContactName>         <ContactTitle>Owner</ContactTitle>         <Address>12, rue des Bouchers</Address>         <City>Marseille</City>         <PostalCode>13008</PostalCode>         <Country>France</Country>         <Phone>91.24.45.40</Phone>         <Fax>91.24.45.41</Fax>     </Customers> </NewDataSet> */