使用DataSet读写xml
1. 了解DataSet加载xml文件形成的结构
2.读取,修改,删除xml节点实例
3. 一点说明及代码下载
<1>. 了解DataSet加载xml文件形成的结构
如果是对于下面的xml文件加载进ds的话,通过vs的调试窗口,得到加载形成的ds结构如下:
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>
通过上面的观察,可以看出ds在加载xml文件时,将节点的属性(例如genre)全部加载到DataRow中。
<2>. 读取,修改,删除xml节点实例
针对上面的xml文件的读取,修改操作就比较简单,仅仅是对ds的一些操作:关键代码如下:
DataSet ds = new DataSet();
// 读取数据
ds.ReadXml("./bookstore.xml");
// 显示数据
Console.WriteLine(ds.Tables[0].Rows[0]["title"]);
// 需要首先循环读取,查找到数据,然后修改数据
ds.Tables[0].Rows[0]["title"] = "change title";
// 插入数据
DataRow row = ds.Tables[0].NewRow();
// 向row中添加数据
row["genre"] = "genre";
row["ISBN"] = "ISBN";
row["title"] = "title";
row["author"] = "author";
row["price"] = "price";
ds.Tables[0].Rows.Add(row);
// 删除数据
DataRow r = ds.Tables[0].Rows[0];
ds.Tables[0].Rows.Remove(r);
// 将修改完成的数据保存
ds.WriteXml("./bookstore.xml");
Console.ReadKey();
上面代码能够解决xml原先存在节点的情况,如果原先xml文件中没有节点,只能手动添加,需要手动编写代码,下面是一个简单示例:
ds.ReadXml(xmlPath);
生成如下格式的xml文件:
<bcaster>
<item item_url="HomePageBanners/4e504e3e-a30b-47da-acfd-2a07237dc9e2.jpg" link="./ViewPictureNews.aspx?id=4e504e3e-a30b-47da-acfd-2a07237dc9e2" itemtitle="" />
</bcaster>
<3>. 一点说明及代码下载
由于上面的方法在每次读写时都需要重新生成一个xml文件(ds.WriteXml("./bookstore.xml");),即是将原先的文件覆盖,所以说上面的方法对于较小的文件有比较好的性能,同时能够减少使用System.Xml命名空间中程序出错。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?