C # 操作 XML

來源:互聯網
上載者:User

概要講一下 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

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.