using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
namespace WindowsFormsApp
{
public class XmlFile
{
// 写入XML文件
public void WriteXml(string FileName, List<XmlData> datas)
{
XmlTextWriter myXmlTextWriter = new XmlTextWriter(FileName, Encoding.UTF8);
myXmlTextWriter.Formatting = Formatting.Indented;
myXmlTextWriter.WriteStartDocument(false);
myXmlTextWriter.WriteStartElement("MyXmlData"); // 标记
myXmlTextWriter.WriteEndElement();
myXmlTextWriter.Flush();
myXmlTextWriter.Close();
XElement xe = XElement.Load(FileName);
foreach (XmlData x in datas)
{
XElement record = new XElement(
new XElement("barcode",
new XAttribute("AA", x.aa),
new XElement("A1", x.a1),
new XElement("A2", x.a2),
new XElement("BB",
new XElement("B1", x.b1),
new XElement("B2", x.b2),
new XElement("CC",
new XElement("C1", x.c1),
new XElement("C2", x.c2)
)
)
));
xe.Add(record);
}
xe.Save(FileName);
}
// 读取XML文件
public List<XmlData> ReadXml(string FileName)
{
List<XmlData> oData = new List<XmlData>();
XmlDocument xml = new XmlDocument();
xml.Load(FileName);
// 得到根节点MyXmlData
XmlNode xn = xml.SelectSingleNode("MyXmlData");
// 得到根节点的所有子节点
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xn1 in xnl)
{
XmlData data = new XmlData();
// 将节点转换为元素,便于得到节点的属性值
XmlElement xe = (XmlElement)xn1;
// 得到barcode节点中AA属性值
data.aa = xe.GetAttribute("AA").ToString();
// 得到barcode节点的所有子节点
XmlNodeList aa = xe.ChildNodes;
data.a1 = aa.Item(0).InnerText;
data.a2 = aa.Item(1).InnerText;
// 从aa节点中取bb
XmlNodeList bb = aa.Item(2).ChildNodes;
data.b1 = bb.Item(0).InnerText;
data.b2 = bb.Item(1).InnerText;
// 从bb节点中取cc
XmlNodeList cc = bb.Item(2).ChildNodes;
data.c1 = cc.Item(0).InnerText;
data.c2 = cc.Item(1).InnerText;
oData.Add(data);
}
return oData;
}
}
public class XmlData
{
public string aa { get; set; }
public string a1 { get; set; }
public string a2 { get; set; }
public string b1 { get; set; }
public string b2 { get; set; }
public string c1 { get; set; }
public string c2 { get; set; }
}
}
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;
namespace WindowsFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
List<XmlData> data = new List<XmlData>();
for(int i = 0;i<5;i++)
{
data.Add(new XmlData()
{
aa = $"AA{i}",
a1 = $"A1{i}",
a2 = $"A2{i}",
b1 = $"B1{i}",
b2 = $"B2{i}",
c1 = $"C1{i}",
c2 = $"C2{i}",
});
}
new XmlFile().WriteXml("my.xml", data);
}
private void button2_Click(object sender, EventArgs e)
{
List<XmlData> data = new XmlFile().ReadXml("my.xml");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
namespace WindowsFormsApp
{
public class XmlFile
{
// 写入XML文件
public void WriteXml(string FileName, List<XmlData> datas)
{
XmlTextWriter myXmlTextWriter = new XmlTextWriter(FileName, Encoding.UTF8);
myXmlTextWriter.Formatting = Formatting.Indented;
myXmlTextWriter.WriteStartDocument(false);
myXmlTextWriter.WriteStartElement("MyXmlData"); // 标记
myXmlTextWriter.WriteEndElement();
myXmlTextWriter.Flush();
myXmlTextWriter.Close();
XElement xe = XElement.Load(FileName);
foreach (XmlData x in datas)
{
XElement record = new XElement(
new XElement("barcode",
new XAttribute("AA", x.aa),
new XElement("A1", x.a1),
new XElement("A2", x.a2),
new XElement("BB",
new XElement("B1", x.b1),
new XElement("B2", x.b2),
new XElement("CC",
new XElement("C1", x.c1),
new XElement("C2", x.c2)
)
)
));
xe.Add(record);
}
xe.Save(FileName);
}
// 读取XML文件
public List<XmlData> ReadXml(string FileName)
{
List<XmlData> oData = new List<XmlData>();
XmlDocument xml = new XmlDocument();
xml.Load(FileName);
// 得到根节点MyXmlData
XmlNode xn = xml.SelectSingleNode("MyXmlData");
// 得到根节点的所有子节点
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xn1 in xnl)
{
XmlData data = new XmlData();
// 将节点转换为元素,便于得到节点的属性值
XmlElement xe = (XmlElement)xn1;
// 得到barcode节点中AA属性值
data.aa = xe.GetAttribute("AA").ToString();
// 得到barcode节点的所有子节点
XmlNodeList aa = xe.ChildNodes;
data.a1 = aa.Item(0).InnerText;
data.a2 = aa.Item(1).InnerText;
// 从aa节点中取bb
XmlNodeList bb = aa.Item(2).ChildNodes;
data.b1 = bb.Item(0).InnerText;
data.b2 = bb.Item(1).InnerText;
// 从bb节点中取cc
XmlNodeList cc = bb.Item(2).ChildNodes;
data.c1 = cc.Item(0).InnerText;
data.c2 = cc.Item(1).InnerText;
oData.Add(data);
}
return oData;
}
}
public class XmlData
{
public string aa { get; set; }
public string a1 { get; set; }
public string a2 { get; set; }
public string b1 { get; set; }
public string b2 { get; set; }
public string c1 { get; set; }
public string c2 { get; set; }
}
}
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;
namespace WindowsFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
List<XmlData> data = new List<XmlData>();
for(int i = 0;i<5;i++)
{
data.Add(new XmlData()
{
aa = $"AA{i}",
a1 = $"A1{i}",
a2 = $"A2{i}",
b1 = $"B1{i}",
b2 = $"B2{i}",
c1 = $"C1{i}",
c2 = $"C2{i}",
});
}
new XmlFile().WriteXml("my.xml", data);
}
private void button2_Click(object sender, EventArgs e)
{
List<XmlData> data = new XmlFile().ReadXml("my.xml");
}
}
}