前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#在WINForm程序中通过三种方式创建XML文件

C#在WINForm程序中通过三种方式创建XML文件

作者头像
zls365
发布2022-01-14 13:46:17
1.5K0
发布2022-01-14 13:46:17
举报
文章被收录于专栏:CSharp编程大全CSharp编程大全
代码语言:javascript
复制
<?xml version="1.0" encoding="gb2312"?>
<FilesInformation>
  <version>1.0.1818.42821</version>
  <description>说明</description>
  <FileItem  
  FileName="name"
  FileVersion="sdf"
  FileLength="sdf"
  FileCreationTime="sd"
  />
</FilesInformation>

string path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

获取和设置包含该应用程序的目录的名称

File.Exists(path + XmlFileName)

File.Exists是判断文件是否存在,传入参数为路径+文件名

XmlDocument xmlDoc = new XmlDocument();

这一句是创建一个XmlDocument对象

XmlDeclaration xmlSM = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);

这一句是添加xml文件头的声明

xmlDoc.AppendChild(xmlSM);

这一句是将创建的XmlDocument对象追加到xml文件声明后面

XmlElement DeviceTree = xmlDoc.CreateElement("DeviceTree");

这一句为创建一个标签名为DeviceTree的节点

DeviceTree.SetAttribute("name", "设备树");

这一句设置节点的name属性为设备树

xmlDoc.AppendChild(DeviceTree);

这一句是将创建的节点添加到开始创建的XmlDocument对象中

xmlDoc.Save(path + XmlFileName);

最后是保存创建好的xml文件

方法1:

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)  
{      
XmlDocument xmlDoc = new XmlDocument();           //建立Xml的定义声明         
XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);         
xmlDoc.AppendChild(dec);           //创建根节点         
XmlElement root = xmlDoc.CreateElement("FilesInformation");         
xmlDoc.AppendChild(root);        
XmlElement version = xmlDoc.CreateElement("version");      version.InnerText = "1.0.1818.42821";      
root.AppendChild(version);          
XmlElement description = xmlDoc.CreateElement("description");      
description.InnerText = "说明";      
root.AppendChild(description);        
XmlElement fileItem = xmlDoc.CreateElement("FileItem");      
fileItem.SetAttribute("FileName", "name");      
fileItem.SetAttribute("FileVersion", "xx");      
fileItem.SetAttribute("FileLength", "xxx");      
fileItem.SetAttribute("FileCreationTime", "xxxx");      
root.AppendChild(fileItem);           
xmlDoc.Save("test.xml");    
 }

方法2:

代码语言:javascript
复制
 XmlDocument xmldoc = new XmlDocument();
                XmlText xmltext;

                //声明
                XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
                xmlnode.InnerText += " encoding=\"GB2312\"";
                xmldoc.AppendChild(xmlnode);

                //添加根节点
                XmlElement xmlelementroot = xmldoc.CreateElement("", "Config", "");
                //根节点包含节点文本时会造成XML文档结构的混乱
                //xmltext = xmldoc.CreateTextNode("配置信息");
                //xmlelementroot.AppendChild(xmltext);
                xmldoc.AppendChild(xmlelementroot);

                //添加一个元素
                XmlElement xmlelement1 = xmldoc.CreateElement("", "DTL", "");
                xmltext = xmldoc.CreateTextNode("2010-10-25");
                xmlelement1.AppendChild(xmltext);
                xmldoc.ChildNodes.Item(1).AppendChild(xmlelement1);

                //添加另一个元素
                XmlElement xmlelement2 = xmldoc.CreateElement("", "DTF", "");
                xmltext = xmldoc.CreateTextNode("2011-02-10");
                xmlelement2.AppendChild(xmltext);
                xmldoc.ChildNodes.Item(1).AppendChild(xmlelement2);

                //保存
                xmldoc.Save(Environment.CurrentDirectory+"\\111.xml");

方法3:

代码语言:javascript
复制
XmlTextWriter xmlwriter = new XmlTextWriter(getPath(), Encoding.Default);
                xmlwriter.Formatting = Formatting.Indented;
                xmlwriter.Indentation = 4;

                xmlwriter.WriteStartDocument();
                xmlwriter.WriteStartElement("", "Config", "");

                xmlwriter.WriteStartElement("", "DTL", "");
                xmlwriter.WriteString("2010-10-25");
                xmlwriter.WriteEndElement();

                xmlwriter.WriteStartElement("", "DTF", "");
                xmlwriter.WriteString("2011-02-10");
                xmlwriter.WriteEndElement();

                xmlwriter.WriteEndElement();
                xmlwriter.WriteEndDocument();

                xmlwriter.Flush();
                xmlwriter.Close();

上面代码中的getPath()是自定义的一个获取文件路径加名称的方法,请根据自己实际情况修改!我一般设定为(Environment.CurrentDirectory+"\\111.xml")

总的来说还是方法三比较容易理解,简单易用,也是我常用的方法!

希望对各位有所帮助!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CSharp编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档