.net中創建xml文件的兩種方法
方法1:根據xml結構一步一步構建xml文檔,保存文件(動態方式)
方法2:直接加載xml結構,保存文件(固定方式)
方法1:動態創建xml文檔
根據傳遞的值,構建xml文檔結構
1、創建實體類,保存窗體傳遞的值
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CreateXmlTest.Model { public class XmlTest { //xml文檔名稱 public string Name { get; set; } //廠商名稱 public string Factory { get; set; } //上傳方式 public string UpMethod { get; set; } //壓縮方式 public string Compress { get; set; } } }
2、創建窗體頁面
3、固定方式和靈活方式的源碼
using CreateXmlTest.Model; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; namespace CreateXmlTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 固定方式模板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnModel_Click(object sender, EventArgs e) { //創建空的xml文檔 XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml("<?xml version='1.0' encoding='utf-8'?>"+ "<bookstore>"+ "<book>"+ "<name>我不是一個人戰斗</name>"+ "<author>吳京著</author>"+ "<price>99.8元</price>"+ "</book>"+ "</bookstore>"); xmldoc.Save("測試1.xml"); } /// <summary> /// 靈活方式模板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnModel1_Click(object sender, EventArgs e) { XmlTest oms = new XmlTest(); //獲取保存xml名稱 oms.Name = this.txt_Model.Text; //判斷廠商保存的xml值 if (this.rad_3shape.Checked) { oms.Factory =this.rad_3shape.Text; } if (this.rad_ruike.Checked) { oms.Factory = this.rad_ruike.Text; } //判斷壓縮格式保存的xml值 if (this.rad_3oxz.Checked) { oms.Compress = this.rad_3oxz.Text; } if (this.rad_zip.Checked) { oms.Compress = this.rad_zip.Text; } //判斷保存的xml值 if (this.rad_web.Checked) { oms.UpMethod = this.rad_web.Text; } if (this.rad_ftp.Checked) { oms.UpMethod = this.rad_ftp.Text; } //MessageBox.Show("廠商名稱:"+oms.Factory +",壓縮格式:"+oms.Compress+",上傳方式:"+oms.UpMethod); //創建xml文檔對象 XmlDocument xmldoc = new XmlDocument(); XmlText xmltext; //加入xml的聲明段落 XmlNode xmlnode = xmldoc.CreateXmlDeclaration("1.0","utf-8",null); xmldoc.AppendChild(xmlnode); //添加一個根元素 //創建元素節點ModelConfig XmlElement xmlele = xmldoc.CreateElement("","ModelConfig", ""); //創建文本節點 xmltext = xmldoc.CreateTextNode(""); //創建元素節點的文本節點 xmlele.AppendChild(xmltext); //綁定元素節點屬於xml文檔 xmldoc.AppendChild(xmlele); //添加一個子元素 XmlElement xmlele1 = xmldoc.CreateElement("", "Config", ""); xmltext = xmldoc.CreateTextNode(""); xmlele1.AppendChild(xmltext); //創建元素節點的屬性節點 xmlele1.SetAttribute("id","1"); //綁定元素節點Config在ModelCofig下 xmldoc.ChildNodes.Item(1).AppendChild(xmlele1); //添加第二個子元素 XmlElement xmlele11 = xmldoc.CreateElement("","Config",""); xmltext = xmldoc.CreateTextNode("配置2"); xmlele11.AppendChild(xmltext); xmlele11.SetAttribute("id","2"); xmldoc.ChildNodes.Item(1).AppendChild(xmlele11); //創建第一個子元素的子元素 XmlElement xmlele2 = xmldoc.CreateElement("","FactoryName",""); xmltext = xmldoc.CreateTextNode(oms.Factory); xmlele2.AppendChild(xmltext); xmldoc.ChildNodes.Item(1).AppendChild(xmlele1).AppendChild(xmlele2); XmlElement xmlele3 = xmldoc.CreateElement("","CompressMethod",""); xmltext = xmldoc.CreateTextNode(oms.Compress); xmlele3.AppendChild(xmltext); xmldoc.ChildNodes.Item(1).AppendChild(xmlele1).AppendChild(xmlele3); XmlElement xmlele4 = xmldoc.CreateElement("","UpMethod",""); xmltext = xmldoc.CreateTextNode(oms.UpMethod); xmlele4.AppendChild(xmltext); xmldoc.ChildNodes.Item(1).AppendChild(xmlele1).AppendChild(xmlele4); //保存xml成文件 xmldoc.Save(oms.Name+".xml"); } } }
4、固定創建的xml文檔和靈活創建的xml文檔視圖
1)生成的xml文檔在項目的bin下面
2)測試模板1結果視圖(固定)
3)測試模板2結果視圖(動態)
參考來源:
http://www.cnblogs.com/jhxk/articles/1872930.html