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

 

 

 

posted @   小宝马的爸爸  阅读(4901)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 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——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示