C # 操作 XML
概要讲一下 C# 对 XML 的使用
事实上,一个 XML 文件在加载入内存中后会是以 Dom 树的形式存在,
所以对一个 XML 文件的操作也就归根为一个对 Dom 的操作了,
首先看一下 XML 文件的大体结构
也即是一个学校里面的学生,拥有学号,姓名,性别,年龄
<?xml version="1.0" encoding="utf-8"?>
<School>
<Student number="001">
<Name>XiaoZhen</Name>
<Sex>男</Sex>
<Age>20</Age>
</Student>
<Student number="002">
<Name>BaoBei</Name>
<Sex>男</Sex>
<Age>20</Age>
</Student>
<Student number="003">
<Name>SuHa</Name>
<Sex>女</Sex>
<Age>21</Age>
</Student>
<Student number="004">
<Name>BaoBeiMe</Name>
<Sex>女</Sex>
<Age>20</Age>
</Student>
</School>
然后便是对其的基本操作了
public class getAllXmlData
{
private string xmlPath;
public getAllXmlData(string path)
{
xmlPath = path;
}
//即是获取指定路径的 XML文件中的所有数据
//并且是以 DataView 对象返回数据集
public DataView GetXmlDataView()
{
DataTable myTable = new DataTable();
DataRow myRow;
myTable.Columns.Add("学号", Type.GetType("System.String"));
myTable.Columns.Add("姓名", Type.GetType("System.String"));
myTable.Columns.Add("性别", Type.GetType("System.String"));
myTable.Columns.Add("年龄", Type.GetType("System.String"));
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
XmlElement root = xmlDoc.DocumentElement;
foreach (XmlNode node in root.ChildNodes)
{
myRow = myTable.NewRow();
myRow["学号"] = node.Attributes["number"].Value;
myRow["姓名"] = node.SelectSingleNode("./Name").InnerText;
myRow["性别"] = node.SelectSingleNode("./Sex").InnerText;
myRow["年龄"] = node.SelectSingleNode("./Age").InnerText;
myTable.Rows.Add(myRow);
}
return myTable.DefaultView;
}
}
又如在 XML 文件中新增一条新的数据
public void InsertXmlData(string xmlPath)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
XmlElement root = xmlDoc.DocumentElement;
XmlElement student = xmlDoc.CreateElement("Student");
student.SetAttribute("number", strNumber);
XmlElement name = xmlDoc.CreateElement("Name");
name.InnerText = strName;
XmlElement sex = xmlDoc.CreateElement("Sex");
sex.InnerText = strSex;
XmlElement age = xmlDoc.CreateElement("Age");
age.InnerText = strAge;
student.AppendChild(name);
student.AppendChild(sex);
student.AppendChild(age);
root.AppendChild(student);
xmlDoc.Save(xmlPath);
}
由上面代码可以看出
对 XML 的一个操作完全是以 Dom 的形式来实现的
所以对 XML 的掌握程度关键还在于 Dom
【推荐】国内首个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 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器