Csharp/CSharp Tutorial/XML/Xml Write
Содержание
Read and write with XmlReader and XmlWriter
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Xml; public class MainClass {
public static void Main() { XmlReader reader = XmlReader.Create("pubs.xml"); XmlWriter writer = XmlWriter.Create("output.xml"); while (reader.Read()) { writer.WriteNode(reader, true); } reader.Close(); writer.Close(); }
}</source>
Read one xml to write it to another xml
<source lang="csharp">using System; using System.Xml; class MainClass {
static void Main(string[] args) { XmlTextWriter writer = new XmlTextWriter("C:\\xmlWriterTest.xml", null); writer.WriteStartDocument(); writer.WriteEndElement(); XmlTextReader reader = new XmlTextReader(@"C:\node.xml"); while (!reader.EOF) { writer.WriteNode(reader, false); }
// Ends the document. writer.WriteEndDocument(); writer.Close(); return; }
}</source>
Read/Write Xml document with FileStream
<source lang="csharp">using System; using System.Xml; using System.IO; using System.Text; public class MainClass {
private static void Main() { FileStream fs = new FileStream("products.xml", FileMode.Create); XmlWriter w = XmlWriter.Create(fs); w.WriteStartDocument(); w.WriteStartElement("products"); // Write a product. w.WriteStartElement("product"); w.WriteAttributeString("id", "1001"); w.WriteElementString("productName", "Coffee"); w.WriteElementString("productPrice", "0.99"); 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(); 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>
<products> <product> ATTRIBUTE: 1001 <productName> VALUE: Coffee <productPrice> VALUE: 0.99
Save Data As Xml
<source lang="csharp">using System; using System.Data.SqlClient; using System.IO; using System.Xml; public class SaveDataAsXml {
public static void Main(string [] args) { SqlConnection connection = new SqlConnection("Initial Catalog=Product; Integrated Security=SSPI; User ID=sa"); string command = "SELECT name FROM customers"; SqlCommand xmlCommand = new SqlCommand(command, connection); connection.Open(); XmlReader reader = xmlCommand.ExecuteXmlReader(); XmlDocument doc = new XmlDocument(); doc.Load(reader); doc.Save(Console.Out); connection.Close(); }
}</source>
Write value to Xml
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Xml;
public class MainClass { public static void Main() { XmlWriter writer; writer = XmlWriter.Create("output.xml"); writer.WriteStartDocument(); writer.WriteStartElement("pubs"); writer.WriteStartElement("titles"); writer.WriteStartAttribute("name"); writer.WriteValue("value"); writer.WriteEndAttribute(); writer.WriteStartAttribute("price"); writer.WriteValue(19.99); writer.WriteEndAttribute(); writer.WriteEndElement(); writer.WriteEndElement(); writer.Close(); } }</source>
Write whole xml document as a node
<source lang="csharp">using System; using System.Xml; class MainClass {
static void Main(string[] args) { XmlTextWriter writer = new XmlTextWriter("C:\\xmlWriterTest.xml", null); writer.WriteStartDocument(); XmlTextReader reader = new XmlTextReader(@"C:\node.xml"); while (!reader.EOF) { writer.WriteNode(reader, false); } writer.WriteEndDocument(); writer.Close(); return; }
}</source>
Write XML to file
<source lang="csharp">using System; using System.IO; using System.Xml; using System.Xml.Schema; class MainClass {
static void Main(string[] args) { XmlTextWriter myXmlTextWriter = null;
myXmlTextWriter = new XmlTextWriter("books.xml", null); myXmlTextWriter.Formatting = Formatting.Indented; myXmlTextWriter.WriteStartDocument(false); myXmlTextWriter.WriteDocType("bookstore", null, "books.dtd", null); myXmlTextWriter.WriteComment("comment"); myXmlTextWriter.WriteStartElement("bookstore"); myXmlTextWriter.WriteStartElement("book", null); myXmlTextWriter.WriteAttributeString("genre", "autobiography"); myXmlTextWriter.WriteAttributeString("publicationdate", "1979"); myXmlTextWriter.WriteAttributeString("ISBN", "0-9999-9999-9"); myXmlTextWriter.WriteElementString("title", null, "Title"); myXmlTextWriter.WriteStartElement("Author", null); myXmlTextWriter.WriteElementString("first-name", "first"); myXmlTextWriter.WriteElementString("last-name", "last"); myXmlTextWriter.WriteEndElement(); myXmlTextWriter.WriteElementString("price", "799.99"); myXmlTextWriter.WriteEndElement(); myXmlTextWriter.WriteEndElement(); //Write the XML to file and close the writer myXmlTextWriter.Flush(); myXmlTextWriter.Close(); if (myXmlTextWriter != null) myXmlTextWriter.Close(); }
}</source>