• C# 写入XML文档三种方法详细介绍


     

    三个类将同样的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是最简便的。
  • 相关阅读:
    maven引入tomcat插件
    Maven更新jdk1.7
    ehcashe
    response的json
    ajax
    180411
    清空select标签中option选项
    jackson
    ajax
    mysql主从
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/5809334.html
Copyright © 2020-2023  润新知