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

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

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");
   }
}