在C#中创建和读取XML文件
项目中需要将前台页面中的信息保存下来并存储为xml文件格式到数据库中去。因此我先在这里通过一个小实例来学习xml的创建与读取。
本文部分参考http://blog.csdn.net/lengjing126/archive/2009/08/12/4438042.aspx
1.创建简单的XML文件
为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Xml;
- namespace CreateXml
- {
- class Program
- {
- static void Main(string[] args)
- {
- Program app = new Program();
- app.CreateXmlFile();
- }
- public void CreateXmlFile()
- {
- XmlDocument xmlDoc = new XmlDocument();
- //创建类型声明节点
- XmlNode node=xmlDoc.CreateXmlDeclaration("1.0","utf-8","");
- xmlDoc.AppendChild(node);
- //创建根节点
- XmlNode root = xmlDoc.CreateElement("User");
- xmlDoc.AppendChild(root);
- CreateNode(xmlDoc, root, "name", "xuwei");
- CreateNode(xmlDoc, root, "sex", "male");
- CreateNode(xmlDoc, root, "age", "25");
- try
- {
- xmlDoc.Save("c://data2.xml");
- }
- catch (Exception e)
- {
- //显示错误信息
- Console.WriteLine(e.Message);
- }
- //Console.ReadLine();
- }
- /// <summary>
- /// 创建节点
- /// </summary>
- /// <param name="xmldoc"></param> xml文档
- /// <param name="parentnode"></param>父节点
- /// <param name="name"></param> 节点名
- /// <param name="value"></param> 节点值
- ///
- public void CreateNode(XmlDocument xmlDoc,XmlNode parentNode,string name,string value)
- {
- XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);
- node.InnerText = value;
- parentNode.AppendChild(node);
- }
- }
- }
这样会在C盘根目录下创建data2.xml文件,文件内容为
- <?xml version="1.0" encoding="utf-8"?>
- <User>
- <name>xuwei</name>
- <sex>male</sex>
- <age>25</age>
- </User>
2.创建多节点多层级的XML文件
只需要对CreateXmlFile()方法进行简单修改即可,修改如下:
- public void CreateXmlFile()
- {
- XmlDocument xmlDoc = new XmlDocument();
- //创建类型声明节点
- XmlNode node=xmlDoc.CreateXmlDeclaration("1.0","utf-8","");
- xmlDoc.AppendChild(node);
- //创建根节点
- XmlNode root = xmlDoc.CreateElement("Users");
- xmlDoc.AppendChild(root);
- XmlNode node1 = xmlDoc.CreateNode(XmlNodeType.Element, "User", null);
- CreateNode(xmlDoc, node1, "name", "xuwei");
- CreateNode(xmlDoc, node1, "sex", "male");
- CreateNode(xmlDoc, node1, "age", "25");
- root.AppendChild(node1);
- XmlNode node2 = xmlDoc.CreateNode(XmlNodeType.Element, "User", null);
- CreateNode(xmlDoc, node2, "name", "xiaolai");
- CreateNode(xmlDoc, node2, "sex", "female");
- CreateNode(xmlDoc, node2, "age", "23");
- root.AppendChild(node2);
- try
- {
- xmlDoc.Save("c://data5.xml");
- }
- catch (Exception e)
- {
- //显示错误信息
- Console.WriteLine(e.Message);
- }
- //Console.ReadLine();
- }
生成的xml文件内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <Users>
- <User>
- <name>xuwei</name>
- <sex>male</sex>
- <age>25</age>
- </User>
- <User>
- <name>xiaolai</name>
- <sex>female</sex>
- <age>23</age>
- </User>
- </Users>