.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
