程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用DOM進行XML文件的讀寫操作

使用DOM進行XML文件的讀寫操作

編輯:C#入門知識

XML能夠在各個平台的不同應用程序之間進行數據的傳輸與存儲.它是獨立於軟件和硬件的信息傳輸工具.因此,它也成了W3C 的推薦標准.現在軟硬件的配置文件一般都采用XML文件來存儲.XML文件簡單易用,在任何應用程序中都可以訪問.在應用程序中訪問進而操作XML文件一般有兩種模型,分別是使用DOM(文檔對象模型)和流模型,使用DOM的好處在於它允許編輯和更新XML文檔,可以隨機訪問文檔中的數據,可以使用XPath查詢,但是,DOM的缺點在於它需要一次性的加載整個文檔到內存中,對於大型的文檔,這會造成資源問題.先不說這麼多了,來看一個簡單的用DOM創建讀取寫入XML文件的例子.

 XmlProcess.cs:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;

namespace XmlRead
{
   public class XmlProcess
    {
        //創建一個XML對象
        XmlDocument xmlDoc;

        //定義一個結點對象
        XmlNode node;

        //獲取當前工作目錄路徑
        string workDir = Directory.GetCurrentDirectory();

        List<Student> stuList = new List<Student>();


        //定義一個元素
        XmlElement xmlEle;

        public void CreatNewXml()
        {
            //在工作目錄下創建一個XML文件
            //實例化XML對象
            xmlDoc = new XmlDocument();

            //加入XML文件的聲明段落,,<?xml version="1.0" encoding="gb2312"?>
            XmlDeclaration xmlDecl;
            xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "gb2312", null);
            xmlDoc.AppendChild(xmlDecl);

            //加入一個根元素
            xmlEle = xmlDoc.CreateElement("", "成績表", "");
            xmlDoc.AppendChild(xmlEle);
            //獲取根結點
            XmlNode root = xmlDoc.SelectSingleNode("成績表");

            //添加一個學生記錄
            XmlElement stu1 = xmlDoc.CreateElement("學生1");

            XmlElement stuNo = xmlDoc.CreateElement("學號");
            stuNo.InnerText = "1001";
            XmlElement stuName = xmlDoc.CreateElement("姓名");
            stuName.InnerText = "張三";
            XmlElement stuGrade = xmlDoc.CreateElement("成績");
            stuGrade.InnerText = "96";
            stu1.AppendChild(stuNo);
            stu1.AppendChild(stuName);
            stu1.AppendChild(stuGrade);
            root.AppendChild(stu1);

            //添加第二個學生記錄
            XmlElement stu2 = xmlDoc.CreateElement("學生2");

            stuNo = xmlDoc.CreateElement("學號");
            stuNo.InnerText = "1002";
            stuName = xmlDoc.CreateElement("姓名");
            stuName.InnerText = "李四";
            stuGrade = xmlDoc.CreateElement("成績");
            stuGrade.InnerText = "90";
            stu2.AppendChild(stuNo);
            stu2.AppendChild(stuName);
            stu2.AppendChild(stuGrade);
            root.AppendChild(stu2);

            //以上為手動添加XML文件的方法,用於創建並書寫XML文件
            //還可以使用XmlTextWriter對象輸出數據流


            //生成並保存XML文件
            xmlDoc.Save(workDir + "\StudentGrade.xml");
        }

        public void DataIn(string fileName)
        {
            xmlDoc = new XmlDocument();

            //載入XML文件
            xmlDoc.Load(workDir + "\" + fileName);
            //獲取根結點
            XmlNodeList nodes = xmlDoc.SelectNodes("/成績表");
            for (int i = 0; i < nodes.Count; i++)
            {
                //獲取學生信息的結點總數
                XmlNodeList nls = nodes[i].ChildNodes;

                //循環填充學生實例的各個字段
                for (int j = 0; j < nls.Count; j++)
                {
                    //創建學生類實例
            &nbs

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved