当前位置:编程学习 > XML/UML >>

使用DOM进行XML文件的读写操作

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

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,