加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【XML】文件的基本读写

发布时间:2020-12-16 09:43:36 所属栏目:百科 来源:网络整理
导读:本文中主要列举了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 str

本文中主要列举了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#xmlTestxmlTestgw2.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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读