Ling To Xml 学习之 对xml增、删、改、查

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;
using System.Xml.Linq;
using System.Xml;

namespace lingtoxml
{
public partial class Ling_student_xml : Form
{
string xmlPath = "StuInfo.xml";
public Ling_student_xml()
{
InitializeComponent();
}

private void Ling_student_xml_Load(object sender, EventArgs e)
{
datagridBind();
}
public void datagridBind()
{
DataSet ds
= new DataSet();
ds.ReadXml(xmlPath);
dataGridView1.DataSource
= ds.Tables[0];
}
//添加信息到xml中去
private void AddEnter_Click(object sender, EventArgs e)
{
//1、加载xml

XElement xelment
= XElement.Load(xmlPath);
//2、实例化泛型接口
IEnumerable<XElement> xelments = from xe in xelment.Elements("stu")
select xe;

//生成相应的数据
string SID = Convert.ToInt32(xelments.Max(xe => xe.Attribute("ID").Value)+1).ToString("0000");
XElement stu
= new XElement("stu", new XAttribute("ID", SID),
new XElement("Name",textBox1.Text),
new XElement("Sex",textBox2.Text),
new XElement("Age",textBox3.Text),
new XElement("Grad",textBox4.Text)

);
xelment.Add(stu);
//添加xml元素
xelment.Save(xmlPath);//保存xml
datagridBind();
}
// 根据选择的ID获得详细信息
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
string keys = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();//获取ID
XElement xelment=XElement.Load(xmlPath);//加载xml
//根据编号查找
IEnumerable<XElement> xelments = from xe in xelment.Elements("stu")
where xe.Attribute("ID").Value == keys
select xe;
foreach (XElement item in xelments)
{
textBox5.Text
= item.Attribute("ID").Value.ToString();
textBox1.Text
= item.Element("Name").Value.ToString();
textBox2.Text
= item.Element("Sex").Value.ToString();
textBox3.Text
= item.Element("Age").Value.ToString();
textBox4.Text
= item.Element("Grad").Value.ToString();
}
}

private void button1_Click(object sender, EventArgs e)
{
XElement xelment
= XElement.Load(xmlPath);
if (textBox5.Text != "")
{
IEnumerable
<XElement> xelments = from xe in xelment.Elements("stu")
select xe;
if (xelments.Count() != 0)
{
XElement newXE
= xelments.First();
newXE.SetAttributeValue(
"ID", textBox5.Text);
newXE.ReplaceNodes(
new XElement("Name",textBox1.Text),
new XElement("Sex",textBox2.Text),
new XElement("Age",textBox3.Text),
new XElement("Grad",textBox4.Text)
);
}
xelment.Save(xmlPath);
}
datagridBind();
}


}
}

原文地址:https://www.cnblogs.com/Mr0909/p/2116691.html