C# 写入XML文档三种方法详细介绍
发布时间:2020-12-15 04:36:44 所属栏目:百科 来源:网络整理
导读:我在以前的博客中介绍了如何使用XmlDocument类对XML进行操作,以及如何使用LINQ to XML对XML进行操作。它们分别使用了XmlDocument类和XDocument类。在本文中,我再介绍一个类,XmlTextWriter。我们分别用这三个类将同样的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是最简便的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |