All pastes #613425 Raw Edit

Something

public text v1 · immutable
·published 2007-07-10 23:39 UTC
rendered paste body
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;

/* Given:
<Customers name = "root">
	<Customer name = "Bob">			
	</Customer>
	
	<!-- here's a customer -->
	<Customer name = "Ted">			
	</Customer>
	
	<Customer name = "Sally">			
	</Customer>
</Customers>

we expect to see:
root
   Bob
   Ted
   Sally

but what we get is:
root
   Bob
   How did we get a #comment?
   Ted
   Sally
*/

public class Program
{
	public static void Main(string[] args)
	{
		XmlReaderSettings settings = new XmlReaderSettings();
		settings.IgnoreComments = true;

		Stream stream = File.OpenRead("Test1.xml");
		XmlReader reader = XmlReader.Create(stream, settings);

		XmlDocument xml = new XmlDocument();
		xml.Load(reader);
		
		DoElement(xml.FirstChild, "");
	}
	
	private static void DoElement(XmlNode element, string indent)
	{
		DoPrint(element, indent);
		
		foreach (XmlNode child in element.ChildNodes)	
		{
			DoElement(child, indent + "   ");
		}
	}
	
	private static void DoPrint(XmlNode element, string indent)
	{
		if (element.Name == "Customers" || element.Name == "Customer")
		{
			string name = element.Attributes["name"].Value;
			Console.WriteLine("{0}{1}", indent, name);
		}
		else
			Console.WriteLine("{0}How did we get a {1}?", indent, element.Name);
	}
}