C#在WINForm程序中创建XML文件
<?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:
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:
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:
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")
总的来说还是方法三比较容易理解,简单易用,也是我常用的方法!
希望对各位有所帮助!
想了解更多c#知识,请扫描下方公众号二维码
需加微信交流群的,请加小编微信号z438679770,切记备注 加群,小编将会第一时间邀请你进群!
上一篇: winform 调用摄像头扫码识别二维码