创建和修改函数 xml

Function to create and modify xml

我有创建 xml 修改它并在控制台中显示的功能。我想向此应用程序添加类似菜单的内容并添加修改它的功能,然后根据此文件创建新创建的对象集合 class 并将其显示在屏幕上。我还想为此添加菜单。例如,当用户选择 1 然后它创建 xml 文件,选择 2 然后修改它并创建对象集合然后编号 3 以在屏幕上显示它。

正在创建 xml 文件

using System;
using System.IO;
using System.Collections.Generic;
using System.Xml.Linq;
using System.Linq;


namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<Car> CarsList = new List<Car>();
            CarsList.Add(new Car("BMW", "X3", "Red", 2005));
            CarsList.Add(new Car("Audi", "A7", "Red", 2012));
            CarsList.Add(new Car("Mercedes", "S550", "Red", 2019));
            CarsList.Add(new Car("Subaru", "Impreza", "Black", 2002));
            CarsList.Add(new Car("Toyota", "Yaris", "Black", 2015));
            CarsList.Add(new Car("VW", "Golf", "Black", 2013));
            CarsList.Add(new Car("Peugeot", "508", "Black", 2001));
            CarsList.Add(new Car("Citroen", "C3", "Black", 2022));
            CarsList.Add(new Car("Ford", "Mustang", "Blue", 2013));
            CarsList.Add(new Car("Volvo", "V50", "Green", 2011));
            XDocument xml = new XDocument(
             new XDeclaration("1.0", "utf-8", "yes"),
             new XComment("Cars list"),
             new XElement("Cars",
             from Car in CarsList
             orderby Car.Brand, Car.Model
             select new XElement("Auto",
            new XAttribute("Brand", Car.Brand),
            new XElement("Model", Car.Model),
            new XElement("Color", Car.Color),
            new XElement("Year", Car.Year)
  )
             )
             );
            xml.Save("Cars.xml");

        }
    }
}

修改xml文件

using System;
using System.IO;
using System.Collections.Generic;
using System.Xml.Linq;
using System.Linq;


namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string[] args)
        {
            XDocument xml = XDocument.Load("Cars.xml");
            var cars = xml.Root.Elements("Car").Where(
            Cars => Cars.Attribute("Brand").Value == "Audi");

            if (cars.Any())
                cars.First().Element("model").Value = "Test";
            xml.Save("Cars.xml");
            xml.Save(Console.Out);

        }
    }
}



在控制台中显示的函数

using System;
using System.IO;
using System.Collections.Generic;
using System.Xml.Linq;
using System.Linq;


namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string[] args)
        {
            XDocument xml = XDocument.Load("Cars.xml");
            List<Car> CarsList = (
            from Car in xml.Root.Elements("Car")
            select new Car(
            Car.Attribute("Brand").Value,
            Car.Element("Model").Value,
            Car.Element("Color").Value,
            int.Parse(Car.Element("Year").Value)
            )
            ).ToList();
            xml.Save(Console.Out);
        }
    }
}
class Car
{
    public string Brand { get; set; }
    public string Model { get; set; }
    public string Color { get; set; }
    public int Year { get; set; }
    public Car(string Brand, string Model, string Color, int Year)
    {
        Brand = Brand;
        Model = Model;
        Color = Color;
        Year = Year;
    }
}

我认为最好使用数据表来完成此项目,您可以通过一条指令读取和写入 XML。也可以在 DGV 的一条指令中显示 table。请参阅下面的示例:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        DataTable dt = null;
        const string FILENAME = @"c:\temp\test.xml";
        public Form1()
        {
            InitializeComponent();

            dt = new DataTable("Cars");
            dt.Columns.Add("Brand", typeof(string));
            dt.Columns.Add("Model", typeof(string));
            dt.Columns.Add("Color", typeof(string));
            dt.Columns.Add("Year", typeof(int));

            dt.Rows.Add(new object[] {"BMW", "X3", "Red", 2005});
            dt.Rows.Add(new object[] {"Audi", "A7", "Red", 2012});
            dt.Rows.Add(new object[] {"Mercedes", "S550", "Red", 2019});
            dt.Rows.Add(new object[] {"Subaru", "Impreza", "Black", 2002});
            dt.Rows.Add(new object[] {"Toyota", "Yaris", "Black", 2015});
            dt.Rows.Add(new object[] {"VW", "Golf", "Black", 2013});
            dt.Rows.Add(new object[] {"Peugeot", "508", "Black", 2001});
            dt.Rows.Add(new object[] {"Citroen", "C3", "Black", 2022});
            dt.Rows.Add(new object[] {"Ford", "Mustang", "Blue", 2013});
            dt.Rows.Add(new object[] {"Volvo", "V50", "Green", 2011});

            dataGridView1.DataSource = dt;

            dt.WriteXml(FILENAME);
        }
    }
}