.net中創建xml文件的兩種方法


.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM