创建和修改函数 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);
}
}
}
我有创建 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);
}
}
}