【XML】文件的基本读写

本文中主要列举了C#中对XML文件的基本读写方法,仅供参考。

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

namespace PCS
{
    struct stcXmlInfo
    {
        public string strName;
        public string strMin;
        public string strMax;
        public string strInit;
    }

    class CDealXmlWL
    {
        public static CDealXmlWL dealWL;

        public CDealXmlWL()
        {
            dealWL = this;
        }

        string _strXmlPath;

        //【XML】读操作;
        public void ReadXml(string strXmlPath)
        {
            _strXmlPath = strXmlPath;

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(_strXmlPath);
            XmlNodeList nodeChilds = xmlDoc.SelectSingleNode("WLSettings").ChildNodes;

            CDealXmlWL.dealWL.PSV = LoadXmlWLOne(nodeChilds[0]);
            CDealXmlWL.dealWL.PSA = LoadXmlWLOne(nodeChilds[1]);
        }

	//【XML】写操作;
        public void WriteXml()
        {
            XmlDocument xmlDoc = new XmlDocument();
            //创建XML的声明;
            XmlDeclaration xmlDec;
            xmlDec = xmlDoc.CreateXmlDeclaration("1.0","gb2312",null);
            xmlDoc.AppendChild(xmlDec);
            //创建XML的一个节点;
            XmlElement eleRoot = xmlDoc.CreateElement("","WLSettings","");
            xmlDoc.AppendChild(eleRoot);
            //选定刚创建的根节点;
            XmlNode nodeRoot = xmlDoc.SelectSingleNode("WLSettings");
            //创建子节点;
            dealOneXmlElement(xmlDoc,nodeRoot,PSV.strName,PSV.strMin,PSV.strMax,PSV.strInit);
            dealOneXmlElement(xmlDoc,PSA.strName,PSA.strMin,PSA.strMax,PSA.strInit);


            //保存新生成的XML文件;
            FileStream fileStream = new FileStream(_strXmlPath,FileMode.Create,FileAccess.Write);
            xmlDoc.Save(fileStream);
            fileStream.Dispose();
        }

        //拷贝一个【XML】中的某一节点到另一个【XML】文件中;
        private void copyNode()
        {
            //【源】从要拷贝的源文件【xmlDocOut】中确定要拷贝的节点【xmlNode】;
            XmlDocument xmlDocOut = new XmlDocument();
            xmlDocOut.Load("D:\\GWei\\练习\\C#\\xmlTest\\xmlTest\\gw2.xml");
            XmlNode xmlNew = xmlDocOut.SelectSingleNode("/LogTool");

            //【目标】从【xmlDocOut】中拷贝某节点内容到【xmlDoc】的指定节点中;
            XmlDocument xmlDoc = new XmlDocument();
            //创建XML的声明;
            XmlDeclaration xmlDec;
            xmlDec = xmlDoc.CreateXmlDeclaration("1.0","");
            xmlDoc.AppendChild(eleRoot);
            //选定刚创建的根节点;
            XmlNode nodeRoot = xmlDoc.SelectSingleNode("WLSettings");
            //插入新节点;
            XmlNode xmlNode = xmlDoc.ImportNode(xmlNew,true);
            nodeRoot.AppendChild(xmlNode);
        }

        private void dealOneXmlElement(XmlDocument xmlDoc,XmlNode nodeRoot,string strName,string strMin,string strMax,string strInit)
        {
            //创建子节点;
            XmlElement xmlEle = xmlDoc.CreateElement("WLSetting");
            xmlEle.SetAttribute("Name",strName);
            xmlEle.SetAttribute("Min",strMin);
            xmlEle.SetAttribute("Max",strMax);
            xmlEle.SetAttribute("Init",strInit);
            nodeRoot.AppendChild(xmlEle);
        }

        private stcXmlInfo LoadXmlWLOne(XmlNode xmlNodeIn)
        {
            stcXmlInfo stcTmp = new stcXmlInfo();
            stcTmp.strName = xmlNodeIn.Attributes[0].InnerText;
            stcTmp.strMin = xmlNodeIn.Attributes[1].InnerText;
            stcTmp.strMax = xmlNodeIn.Attributes[2].InnerText;
            stcTmp.strInit = xmlNodeIn.Attributes[3].InnerText;
            return stcTmp;
        }

        stcXmlInfo psv = new stcXmlInfo();
        public stcXmlInfo PSV   //安全电压;
        {
            set { psv = value; }
            get { return psv; }
        }
	stcXmlInfo psa = new stcXmlInfo();
        public stcXmlInfo PSA   //安全电流;
        {
            set { psa = value; }
            get { return psa; }
        }
        
    }
}

操作的【XML】文件内容如下:

<?xml version="1.0" encoding="gb2312"?>
<WLSettings>
  <WLSetting Name="PS Volt Setting" Min="20" Max="60" Init="23" />
  <WLSetting Name="PS ma Setting" Min="100" Max="180" Init="150" />
</WLSettings>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇