原創地址:http://www.cnblogs.com/jfzhu/archive/2012/12/04/2800656.html
轉載請註明出處
我在以前的部落格中介紹了如何使用XmlDocument類對XML進行操作,以及如何使用LINQ to XML對XML進行操作。它們分別使用了XmlDocument類和XDocument類。在本文中,我再介紹一個類,XmlTextWriter。我們分別用這三個類將同樣的xml內容寫入文檔,看一看哪種寫法最直觀、簡便。
我們要寫入的XML文檔內容為
<?xml version="1.0" encoding="UTF-8"?> <Contacts> <Contact id="01"> <Name>Daisy Abbey</Name> <Gender>female</Gender> </Contact> </Contacts>
(1)使用XmlDocument類:
var xmlDoc = new XmlDocument(); //Create the xml declaration first xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null));//Create the root node and append into doc var el = xmlDoc.CreateElement("Contacts"); xmlDoc.AppendChild(el);// Contact XmlElement elementContact = xmlDoc.CreateElement("Contact"); XmlAttribute attrID = xmlDoc.CreateAttribute("id"); attrID.Value = "01"; elementContact.Attributes.Append(attrID);el.AppendChild(elementContact);// Contact Name XmlElement elementName = xmlDoc.CreateElement("Name"); elementName.InnerText = "Daisy Abbey"; elementContact.AppendChild(elementName);// Contact Gender XmlElement elementGender = xmlDoc.CreateElement("Gender"); elementGender.InnerText = "female"; elementContact.AppendChild(elementGender);xmlDoc.Save("test1.xml");
(2)使用LINQ to XML 的XDocument類:
var doc = new XDocument( new XElement("Contacts", new XElement("Contact", new XAttribute("id", "01"), new XElement("Name", "Daisy Abbey"), new XElement("Gender", "female") ) ) ); doc.Save("test2.xml");
(3) 使用XmlTextWriter類:
String filename = String.Concat("test3.xml");using (StreamWriter sw = new StreamWriter(filename)){ // Create Xml Writer. XmlTextWriter xmlWriter = new XmlTextWriter(sw); // 也可以使用public XmlTextWriter(string filename, Encoding encoding)來構造 // encoding預設為 UTF-8. //XmlTextWriter writer = new XmlTextWriter("test3.xml", null); // Set indenting so that its easier to read XML when open in Notepad and such apps. xmlWriter.Formatting = Formatting.Indented; // This will output the XML declaration xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("Contacts"); xmlWriter.WriteStartElement("Contact"); xmlWriter.WriteAttributeString("id", "01"); xmlWriter.WriteElementString("Name", "Daisy Abbey"); xmlWriter.WriteElementString("Gender", "female"); // close contact </contact> xmlWriter.WriteEndElement(); // close contacts </contact> xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); xmlWriter.Close();}
從上面的代碼基本上還是可以看出來,使用LINQ to XML是最簡便的。