Csharp/C Sharp by API/System.Xml/XmlNodeType

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

XmlNodeType.Element

<source lang="csharp"> 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);
           }
       }
   }

}


 </source>


XmlNodeType.Text

<source lang="csharp"> // 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("\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");
  }

}


 </source>


XmlNodeType.XmlDeclaration

<source lang="csharp"> // 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("\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");
  }

}


 </source>