Csharp/C Sharp by API/System.Xml/XmlNodeType
XmlNodeType.Element
using System;
using System.Xml;
using System.IO;
using System.Text;
class MainClass {
private static void Main() {
FileStream fs = new FileStream("products.xml", FileMode.Create);
XmlWriter w = XmlWriter.Create(fs);
w.WriteStartDocument();
w.WriteStartElement("products");
w.WriteStartElement("product");
w.WriteAttributeString("id", "1001");
w.WriteElementString("productName", "Gourmet Coffee");
w.WriteElementString("productPrice", "0.99");
w.WriteEndElement();
w.WriteStartElement("product");
w.WriteAttributeString("id", "1002");
w.WriteElementString("productName", "Blue China Tea Pot");
w.WriteElementString("productPrice", "102.99");
w.WriteEndElement();
w.WriteEndElement();
w.WriteEndDocument();
w.Flush();
fs.Close();
fs = new FileStream("products.xml", FileMode.Open);
XmlReader r = XmlReader.Create(fs);
while (r.Read()) {
if (r.NodeType == XmlNodeType.Element) {
Console.WriteLine("<" + r.Name + ">");
if (r.HasAttributes) {
for (int i = 0; i < r.AttributeCount; i++) {
Console.WriteLine("\tATTRIBUTE: " +
r.GetAttribute(i));
}
}
} else if (r.NodeType == XmlNodeType.Text) {
Console.WriteLine("\tVALUE: " + r.Value);
}
}
}
}
XmlNodeType.Text
// Reading an XML document.
using System;
using System.Windows.Forms;
using System.Xml;
public class Test{
static void Main() {
XmlDocument document = new XmlDocument();
document.Load( "books.xml" );
XmlNodeReader reader = new XmlNodeReader( document );
int depth = -1;
while ( reader.Read() )
{
switch ( reader.NodeType )
{
case XmlNodeType.Element:
depth++;
TabOutput( depth );
Console.WriteLine("<" + reader.Name + ">" + "\r\n");
if ( reader.IsEmptyElement )
depth--;
break;
case XmlNodeType.rument:
TabOutput( depth );
Console.WriteLine("<!--" + reader.Value + "-->\r\n");
break;
case XmlNodeType.Text:
TabOutput( depth );
Console.WriteLine("\t" + reader.Value + "\r\n");
break;
case XmlNodeType.XmlDeclaration:
TabOutput( depth );
Console.WriteLine("<?" + reader.Name + " " + reader.Value + " ?>\r\n");
break;
case XmlNodeType.EndElement:
TabOutput( depth );
Console.WriteLine("</" + reader.Name + ">\r\n");
depth--;
break;
}
}
}
static void TabOutput( int number )
{
for ( int i = 0; i < number; i++ )
Console.Write("\t");
}
}
XmlNodeType.XmlDeclaration
// Reading an XML document.
using System;
using System.Windows.Forms;
using System.Xml;
public class Test{
static void Main() {
XmlDocument document = new XmlDocument();
document.Load( "books.xml" );
XmlNodeReader reader = new XmlNodeReader( document );
int depth = -1;
while ( reader.Read() )
{
switch ( reader.NodeType )
{
case XmlNodeType.Element:
depth++;
TabOutput( depth );
Console.WriteLine("<" + reader.Name + ">" + "\r\n");
if ( reader.IsEmptyElement )
depth--;
break;
case XmlNodeType.rument:
TabOutput( depth );
Console.WriteLine("<!--" + reader.Value + "-->\r\n");
break;
case XmlNodeType.Text:
TabOutput( depth );
Console.WriteLine("\t" + reader.Value + "\r\n");
break;
case XmlNodeType.XmlDeclaration:
TabOutput( depth );
Console.WriteLine("<?" + reader.Name + " " + reader.Value + " ?>\r\n");
break;
case XmlNodeType.EndElement:
TabOutput( depth );
Console.WriteLine("</" + reader.Name + ">\r\n");
depth--;
break;
}
}
}
static void TabOutput( int number )
{
for ( int i = 0; i < number; i++ )
Console.Write("\t");
}
}