怎么用C#生成一个完整的xml文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用C#生成一个完整的xml文件相关的知识,希望对你有一定的参考价值。

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>
参考技术A http://www.cnblogs.com/xwdreamer/archive/2011/04/27/2297023.html
参考本回答被提问者和网友采纳
参考技术B 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>

C#生成空节点XML文件,自动换行问题

      1.今天做项目时候生成XML文件,有些节点是为空节点,但是生成之后的节点自动换行了,网上百度了一下,大都是设置添加属性为xsi:nil="true"的空节点。

      http://www.acehat.com/kf/201503/78602.html

      但是本人太笨不会用,于是又找到另一种方法,即为:

      

1  XmlWriterSettings settings = new XmlWriterSettings();
2                     settings.Indent = true;
3                     settings.IndentChars = "   ";
4                     settings.Encoding = Encoding.UTF8;
5                     using (XmlWriter xmlWriter = XmlWriter.Create(xmlFileName, settings))
6                     {
7                         xmldoc.Save(xmlWriter);
8                     }

 

以上是关于怎么用C#生成一个完整的xml文件的主要内容,如果未能解决你的问题,请参考以下文章

用C#读取XML文件,怎么可以循环读取

怎么用xmlspy将xml文档生成xsd文件

C#生成空节点XML文件,自动换行问题

如何在datagridview c#中显示完整的xml文件

用于将 XML 数据转换为 html 文件的 C# 与 XSLT [关闭]

如何生成xml文件