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

 
 
 
Daisy Abbey 
female 
 
 

若要实现以上xml文件,以下3种方法


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类: 

方法一(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"); 


方法二‘(XElement)、

        /// 
        /// 2、添加元素
        /// 
        /// XML文件的路径
        private static void AddXmlElement(string xmlpath)
        {
            ///导入XML文件
            XElement xe = XElement.Load(xmlpath);
            ///创建一个新节点
            XElement book1 = new XElement("Book",
                               new XAttribute("BookID", "002"),
                               new XElement("BookNo", "0002"),
                               new XElement("BookName", "Book 0002"),
                               new XElement("BookPrice", "50"),
                               new XElement("BookRemark", "This is a book 0002")
                );
            ///添加节点到XML文件中,并保存
            xe.Add(book1);
            ///创建一个新节点
            XElement book2 = new XElement("Book",
                               new XAttribute("BookID", "003"),
                               new XElement("BookNo", "0003"),
                               new XElement("BookName", "Book 0003"),
                               new XElement("BookPrice", "30"),
                               new XElement("BookRemark", "This is a book 0003")
                );
            ///添加节点到XML文件中,并保存
            xe.Add(book2);
            ///创建一个新节点
            XElement book3 = new XElement("Book",
                               new XAttribute("BookID", "004"),
                               new XElement("BookNo", "0004"),
                               new XElement("BookName", "Book 0004"),
                               new XElement("BookPrice", "60"),
                               new XElement("BookRemark", "This is a book 0004")
                );
            ///添加节点到XML文件中
            xe.Add(book3);
            ///保存到XML文件中
            xe.Save(xmlpath);

            Console.WriteLine(xe);
        }
            //调用函数AddXmlElement(string xmlpath)
            ///添加XML元素
            Program.AddXmlElement(@"C:\BookStore.xml");


方法三(XEelemtnt)、
XElement el = XElement.Load(Server.MapPath("Data/Product.xml"));

XElement product = new XElement
(
    "Product",
    new XAttribute("ID", 2),
    new XElement("ProductName", "LINQ to Object"),
    new XElement("UnitPrice", 20m),
    new XElement("Remark", "")
);

el.Add(product);
el.Save(Server.MapPath("Data/Product.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  
xmlWriter.WriteEndElement(); 
// close contacts  
xmlWriter.WriteEndElement(); 
xmlWriter.WriteEndDocument(); 
xmlWriter.Close(); 
} 



你可能感兴趣的:(c#)