三个类将同样的xml内容写入文档,介绍了如何使用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是最简便的。
    龙腾一族至尊龙骑
    
    
    










