Csharp/C Sharp/XML/XML Write

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

Create XML document with XmlWriter

<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", "Tea Pot");
       w.WriteElementString("productPrice", "12.99");
       w.WriteEndElement();
       w.WriteEndElement();
       w.WriteEndDocument();
       w.Flush();
       fs.Close();
   }

}

      </source>


Illustrates the XmlTextWriter class

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example20_1.cs illustrates the XmlTextWriter class
  • /

using System; using System.Xml; public class Example20_1 {

   public static void Main() 
   {
       // use the XmlTextWriter to open a new XML file
       XmlTextWriter xw = new XmlTextWriter(@"Cust4.xml", 
           System.Text.Encoding.UTF8);
       // write the document declaration
       xw.WriteStartDocument();
       // write the first element
       xw.WriteStartElement("NewDataSet");
       // write the first customer
       xw.WriteStartElement("Customers");
       xw.WriteElementString("CustomerID", "ALFKI");
       xw.WriteElementString("CompanyName", "Alfreds Futterkiste");
       xw.WriteElementString("ContactName", "Maria Anders");
       xw.WriteElementString("ContactTitle", "Sales Representative");
       xw.WriteElementString("Address", "Obere Str. 57");
       xw.WriteElementString("City", "Berlin");
       xw.WriteElementString("PostalCode", "12209");
       xw.WriteElementString("Country", "Germany");
       xw.WriteElementString("Phone", "030-0074321");
       xw.WriteElementString("Fax", "030-0076545");
       xw.WriteEndElement();
       // write the second customer
       xw.WriteStartElement("Customers");
       xw.WriteElementString("CustomerID", "BONAPP");
       xw.WriteElementString("CompanyName", "Bon App"");
       xw.WriteElementString("ContactName", "Laurence Lebihan");
       xw.WriteElementString("ContactTitle", "Owner");
       xw.WriteElementString("Address", "12, rue des Bouchers");
       xw.WriteElementString("City", "Marseille");
       xw.WriteElementString("PostalCode", "13008");
       xw.WriteElementString("Country", "France");
       xw.WriteElementString("Phone", "91.24.45.40");
       xw.WriteElementString("Fax", "91.24.45.41");
       xw.WriteEndElement();
       // end the NewDataSet element
       xw.WriteEndElement();
       // end the document
       xw.WriteEndDocument();
       // flush and close
       xw.Flush();
       xw.Close();
   }

} /**/

      </source>


Read and Write XML Without Loading an Entire Document into Memory

<source lang="csharp"> using System; using System.Xml; using System.IO; using System.Text; public class ReadWriteXml {

   private static void Main() {
       FileStream fs = new FileStream("products.xml", FileMode.Create);
       XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);
       w.WriteStartDocument();
       w.WriteStartElement("products");
       w.WriteStartElement("product");
       w.WriteAttributeString("id", "01");
       w.WriteElementString("name", "C#");
       w.WriteElementString("price", "0.99");
       w.WriteEndElement();
       w.WriteEndElement();
       w.WriteEndDocument();
       w.Flush();
       fs.Close();
       Console.WriteLine("Document created.");
       fs = new FileStream("products.xml", FileMode.Open);
       XmlTextReader r = new XmlTextReader(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>


Write To XML File

<source lang="csharp"> /*

* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
* Version: 1
*/

using System; using System.IO; using System.Xml; using System.Xml.Schema;

namespace Client.Chapter_22___XML {

 public class WriteToXMLFile
 {
   static void Main(string[] args)
   {
     string document = "newbooks.xml";
     XmlTextWriter myXmlTextWriter = null;
     XmlTextReader myXmlTextReader = null;
     myXmlTextWriter = new XmlTextWriter(args[1], null);
     myXmlTextWriter.Formatting = Formatting.Indented;
     myXmlTextWriter.WriteStartDocument(false);
     myXmlTextWriter.WriteDocType("bookstore", null, "books.dtd", null);
     myXmlTextWriter.WriteComment("This file represents another fragment of a book store inventory database");
     myXmlTextWriter.WriteStartElement("bookstore");
     myXmlTextWriter.WriteStartElement("book", null);
     myXmlTextWriter.WriteAttributeString("genre", "autobiography");
     myXmlTextWriter.WriteAttributeString("publicationdate", "1979");
     myXmlTextWriter.WriteAttributeString("ISBN", "0-7356-0562-9");
     myXmlTextWriter.WriteElementString("title", null, "The Autobiography of Mark Twain");
     myXmlTextWriter.WriteStartElement("Author", null);
     myXmlTextWriter.WriteElementString("first-name", "Mark");
     myXmlTextWriter.WriteElementString("last-name", "Twain");
     myXmlTextWriter.WriteEndElement();
     myXmlTextWriter.WriteElementString("price", "7.99");
     myXmlTextWriter.WriteEndElement();
     myXmlTextWriter.WriteEndElement();
     //Write the XML to file and close the writer
     myXmlTextWriter.Flush();
     myXmlTextWriter.Close();
     if (myXmlTextWriter != null)
       myXmlTextWriter.Close();
   }
 }

}

      </source>


Write XML document to console

<source lang="csharp"> using System; using System.Xml; public class HelloXML {

 public static void Main(string [] args) {
   XmlTextWriter writer = new XmlTextWriter(Console.Out);
   writer.WriteStartDocument( );
   writer.WriteElementString("www.nfex.ru", "XML");
   writer.WriteEndDocument( );
   writer.Close( );
 }

}

      </source>


Writing XML with the XmlWriter Class

<source lang="csharp"> using System; using System.IO; using System.Xml;

class MainClass {

   static public void Main()
   {
       XmlTextWriter XmlWriter = new XmlTextWriter(Console.Out);
       
       XmlWriter.WriteStartDocument();
       XmlWriter.WriteComment("This is the comments.");
       XmlWriter.WriteStartElement("BOOK");
       XmlWriter.WriteElementString("TITLE", "this is the title.");
       XmlWriter.WriteElementString("AUTHOR", "I am the author.");
       XmlWriter.WriteElementString("PUBLISHER", "who is the publisher");
       XmlWriter.WriteEndElement();
       XmlWriter.WriteEndDocument();
   }

}

      </source>


XML Write: comment, start element, end element, attribute

<source lang="csharp"> using System; using System.Xml; public class TestXMLWriter{

 static void Main(string[] args)
 {
   XmlTextWriter writer = new XmlTextWriter("test.xml", new System.Text.ASCIIEncoding());
   writer.Formatting = Formatting.Indented;
   writer.Indentation = 4;
   writer.WriteStartDocument();
   writer.WriteComment("Comment");
   writer.WriteStartElement("ElementName", "myns");
   writer.WriteStartAttribute("prefix", "attrName", "myns");
   writer.WriteEndAttribute();
   writer.WriteElementString("ElementName", "myns", "value");
   writer.WriteEndElement();
   writer.WriteEndDocument();
   writer.Flush();
   writer.Close();
 }

}


      </source>