首页 > 编程语言 >C#操作XML文件

C#操作XML文件

时间:2023-02-20 15:02:55浏览次数:45  
标签:XML 文件 C# Text element XElement new xe strPath

加载


static string strPath = "Employee.xml";
static string strID = "";

//窗体加载时加载XML文件
private void Form1_Load(object sender, EventArgs e)
{
if (File.Exists(strPath))
{
groupBox1.Enabled = false;
getXmlInfo();
}
else
groupBox1.Enabled = true;
}

#region 将XML文件内容绑定到DataGridView控件
/// <summary>
/// 将XML文件内容绑定到DataGridView控件
/// </summary>
private void getXmlInfo()
{
DataSet myds = new DataSet();
myds.ReadXml(strPath);
dataGridView1.DataSource = myds.Tables[0];
}
#endregion

创建


//创建XML文件
private void button1_Click(object sender, EventArgs e)
{
XDocument doc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement(textBox1.Text,
new XElement(textBox2.Text, new XAttribute(textBox3.Text, textBox10.Text),
new XElement(textBox4.Text, textBox5.Text),
new XElement(textBox6.Text, textBox7.Text),
new XElement(textBox8.Text, textBox9.Text))
)
);
doc.Save(strPath);
groupBox1.Enabled = false;
getXmlInfo();
}

添加


//添加XML元素
private void button2_Click(object sender, EventArgs e)
{
XElement xe = XElement.Load(strPath);
IEnumerable<XElement> elements1 = from element in xe.Elements("People")
select element;
//生成新的编号
string str = (Convert.ToInt32(elements1.Max(element => element.Attribute("ID").Value)) + 1).ToString("000");
XElement people = new XElement(
"People", new XAttribute("ID", str),
new XElement("Name", textBox11.Text),
new XElement("Sex", comboBox1.Text),
new XElement("Salary", textBox12.Text)
);
xe.Add(people);
xe.Save(strPath);
getXmlInfo();
}

修改


//修改XML元素
private void button3_Click(object sender, EventArgs e)
{
if (strID != "")
{
XElement xe = XElement.Load(strPath);
IEnumerable<XElement> elements = from element in xe.Elements("People")
where element.Attribute("ID").Value == strID
select element;
if (elements.Count() > 0)
{
XElement newXE = elements.First();
newXE.SetAttributeValue("ID", strID);
newXE.ReplaceNodes(
new XElement("Name", textBox11.Text),
new XElement("Sex", comboBox1.Text),
new XElement("Salary", textBox12.Text)
);
}
xe.Save(strPath);
}
getXmlInfo();
}

删除


//删除XML元素
private void button4_Click(object sender, EventArgs e)
{
if (strID != "")
{
XElement xe = XElement.Load(strPath);
IEnumerable<XElement> elements = from element in xe.Elements("People")
where element.Attribute("ID").Value == strID
select element;
if (elements.Count() > 0)
elements.First().Remove();
xe.Save(strPath);
}
getXmlInfo();
}

显示选中

 

 

 

 


//显示选中XML节点的详细信息
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
strID = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
XElement xe = XElement.Load(strPath);
IEnumerable<XElement> elements = from PInfo in xe.Elements("People")
where PInfo.Attribute("ID").Value == strID
select PInfo;
foreach (XElement element in elements)
{
textBox11.Text = element.Element("Name").Value;
comboBox1.SelectedItem = element.Element("Sex").Value;
textBox12.Text = element.Element("Salary").Value;
}
}

https://www.cnblogs.com/for-easy-fast/p/16464321.html

标签:XML,文件,C#,Text,element,XElement,new,xe,strPath
From: https://www.cnblogs.com/hezq/p/17137459.html

相关文章

  • File: 获取并遍历文件夹中的内容listFiles方法
    我们的File类可以对文件和文件夹本身进行一些类的操作,其中最重要的就是获取并遍历文件夹中的内容了对此我们的java提供了以下的方法:以上的各个方法都能实现对文件夹中的......
  • 安装单机版nacos
    1.下载安装包wgethttps://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gztarxfnacos-server-2.2.0.tar.gz-C/usr/local/cd/usr/loc......
  • const static
    C++中const和static的作用static:不考虑类的情况隐藏。不加static的全局变量和函数具有全局可见性,可以在其他文件中使用,加了之后只能在该文件所在的编译模块中使用默......
  • ProtocolBuf Swift 使用
    https://cloud.tencent.com/developer/article/1794757 https://github.com/apple/swift-protobuf ProtocolBufSwift使用环境搭建Mac安装swift-protobufbrewi......
  • html+css图片下面小空白、图片间的间隙问题
    添加图片的时候,图片的默认样式是图片与图片之间有间隙,图片下面也有间隙,需要使用方法进行清除,列举三种方法:方法一:给图片设置对齐方式:vertical-align:top/middle/bott......
  • Transparency Rendering 半透明物体Blending
    顺序有关Blending现存的应用较为广泛的半透明绘制方法是这样的:首先将所有的不透明物体(Opaqueobjects)绘制到屏幕上(或者延迟渲染体系中绘制到GBuffer里),然后将剩余的......
  • Vue Cli配置参考一vue.config.js【转载】
    vue.config.js是一个可选的配置文件,如果项目的(和package.json同级的)根目录中存在这个文件,那么它会被@vue/cli-service自动加载。这个文件应该导出一个包含了选项......
  • ANC(Active Noise Control)基础介绍
    介绍噪声控制的基本概念    环境中存在两种类型的噪声。一种是由湍流(turbuletnoise)引起的,完全是随机的。湍流噪声将其能量均匀地分布在各个频带上。它被称为......
  • 高性能 Jsonpath 框架,Snack3 3.2.54 发布(支持 kotlin data 类反序化)
    Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代表任何......
  • 【题解】P5644 [PKUWC2018]猎人杀
    供题人是树剖姐姐喵/se思路生成函数+子集反演+分治NTT.首先发现当前打中的猎人倒下之后,后面的猎人被射中的概率会随之变化,也就是说操作是有后效性的,不好处理。有......