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 @ 2009-12-20 01:23  小宝马的爸爸  阅读(4892)  评论(1编辑  收藏  举报