XML操作封装 - 实现预格式的XML的读写

XML用于作配置文件。

该封装XML需满足以下格式

<Configs>

  <Config  Name="XXX">

  </Config  Name="XXX">

  <Config  Name="YYY">

  </Config  Name="YYY">

</Configs>

  1     public class XMLOperation
  2     {
  3         public string strXMLPath = string.Empty;
  4         XmlDocument xmlDocument;
  5         XmlNode xmlNode;
  6         public Dictionary<string, string> ConfigInfo = new Dictionary<string, string>();
  7
  8         public XMLOperation(string XMLPath)
  9         {
 10             this.strXMLPath = System.AppDomain.CurrentDomain.BaseDirectory + "ConfigFiles\\" + XMLPath;
 11
 12             xmlDocument = new XmlDocument();
 13             xmlDocument.Load(strXMLPath);
 14
 15         }
 16
 17         public bool InitXMLOperation(string strAttribute, out string strErrorInfo)
 18         {
 19             strErrorInfo = string.Empty;
 20             ConfigInfo.Clear();
 21             try
 22             {
 23                 xmlNode = xmlDocument.SelectSingleNode(string.Format("//Configs//Config[@Name=\"{0}\"]", strAttribute));
 24                 foreach (XmlNode xmlnode in xmlNode.ChildNodes)
 25                 {
 26                     ConfigInfo.Add(xmlnode.Name, xmlnode.InnerText);
 27                 }
 28                 return true;
 29             }
 30             catch (Exception ex)
 31             {
 32                 strErrorInfo = "Ex: " + ex.Message;
 33                 return false;
 34             }
 35         }
 36
 37         public bool ModifyNodeText(string strNodeName, string strNodeText, out string strErrorInfo)
 38         {
 39             strErrorInfo = string.Empty;
 40             try
 41             {
 42                 xmlNode = xmlDocument.SelectSingleNode(string.Format("//Configs//Config[@Name=\"{0}\"]", "Master"));
 43                 foreach (XmlNode xmlnode in xmlNode.ChildNodes)
 44                 {
 45                     if (0 == string.Compare(strNodeName, xmlnode.Name))
 46                     {
 47                         xmlnode.InnerText = strNodeText;
 48                     }
 49                 }
 50
 51                 xmlDocument.Save(strXMLPath);
 52                 return true;
 53             }
 54             catch (Exception ex)
 55             {
 56                 strErrorInfo = "Ex: " + ex.Message;
 57                 return false;
 58             }
 59         }
 60
 61         public bool AddNewNode(string strBOM, Dictionary<string, string> DicNodeContent, out string strErrorInfo)
 62         {
 63             strErrorInfo = string.Empty;
 64             XmlNode newNode;
 65             XmlNode rootNode;
 66
 67             try
 68             {
 69                 xmlNode = (xmlDocument.GetElementsByTagName("Config"))[xmlDocument.GetElementsByTagName("Config").Count - 1];
 70
 71                 newNode = xmlNode.CloneNode(true);
 72
 73                 newNode.Attributes["Name"].Value = strBOM;
 74
 75                 foreach (KeyValuePair<string, string> kvp in DicNodeContent)
 76                 {
 77                     foreach (XmlNode subNode in newNode.ChildNodes)
 78                     {
 79                         if (0 == string.Compare(kvp.Key, subNode.Name))
 80                         {
 81                             subNode.InnerText = kvp.Value;
 82                         }
 83                     }
 84                 }
 85
 86                 rootNode = xmlDocument.DocumentElement;
 87
 88                 rootNode.AppendChild(newNode);
 89
 90                 xmlDocument.Save(strXMLPath);
 91
 92                 return true;
 93             }
 94             catch (Exception ex)
 95             {
 96                 strErrorInfo = "Add new node occurs Ex: " + ex.Message;
 97                 return false;
 98             }
 99         }
100     }

原文地址:https://www.cnblogs.com/linyu168/p/8933414.html

时间: 2024-10-13 04:52:26

XML操作封装 - 实现预格式的XML的读写的相关文章

DOM4J操作XML(包括封装和解析)

先来看看dom4j中相应XML的DOM树建立的继承关系 针对于XML标准定义.相应于图2-1列出的内容,dom4j提供了下面实现: 以下给出一个详细事例: package com.iboxpay.settlement.gateway.common.util; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import org.dom4j.Document; import

DOM4J操作XML(包含封装和解析)

先来看看dom4j中对应XML的DOM树建立的继承关系 针对于XML标准定义,对应于图2-1列出的内容,dom4j提供了以下实现: 下面给出一个具体事例: package com.iboxpay.settlement.gateway.common.util; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import org.dom4j.Document; import

javaEE学习笔记【03】XML操作

XML简介 XML即可扩展的标记语言.因此该语言中所有的标签都是没有预先定义的,开发者可以自己随意的指定. 目前为止所有的标记的语言都属于开源的语言.由W3C组织进行一个基本的维护. 因此大家学习这些语言的时候应该参考W3C公布的文档. XML作用 1.可以用作软件的配置文件. 2.可以实现独立平台的数据传输. C. XML .Java  .天气预报 3.Web Service. 4.可以描述带关系的数据. XML声明指令 语法: 1 <?xml version=""  enco

第七章:Python基础のXML操作和面向对象(上集)

本課主題 XML介绍和操作实战 shutil 模块介绍和操作实战 subprocess 模块介绍和操作实战 XML介绍和操作实战 對於浏览器返回的字符串有以下幾種: HTML JSON,表现是列表和字典的格式 XML XML的應用 一个属性里包含多过属性,一类是页面上做展示的时候可以用到XML,就是为别人来调用(这也是字符串类型的一个XML格式数据);另外一类是配置文件.你可以從文件裡打開一個XML文件,它返回的是一個XML形式的字符串:也可以通過發送 HTTP請求,返回一個 XML 形式的字符

PHP 开发 APP 接口总结 - JSON 结合 XML 方式封装通信接口

要求: 1.在一个类中封装多种数据通信方法(JSON,XML),并且只通过一个入口选择需要的数据通信格式 2.客户端开发工程师可以自行选择数据传输格式(GET 方式) response.php <?php class Response{ const JSON = 'json'; //封装的综合方法,默认的数据类型为json public static function show($code,$message = '',$data,$type = self::JSON){ if(!is_numer

Python XML操作

XML(可扩展性标记语言)是一种非常常用的文件类型,主要用于存储和传输数据.在编程中,对XML的操作也非常常见. 本文根据python库文档中的xml.etree.ElementTree类来进行介绍XML的解析:https://docs.python.org/3.5/library/xml.etree.elementtree.html BTW,xml.etree.cElementTree模块从3.3以后就被弃用了. XML格式 首先,来看一下XML所包含的元素类型 1. 标签 <tag> 2.

python基础篇【第七篇】模块补充、xml操作

一.ConfigParser模块 用于对特定的配置进行操作,当前模块的名称在 python 3.x 版本中变更为 configparser. 配置文件的格式是: []包含的叫section,    section 下有option=value这样的键值 [section1] k1 = v1 k2:10 [section2] k1 = v1 读取配置文件: -read(filename) 直接读取ini文件内容-sections() 得到所有的section,并以列表的形式返回-options(s

C#.NET 程序员的福利,自己写的一个XML操作类,可实现像jquery一样方便的xml操作,且不用专门去处理命名空间。

此工具是进入一家新公司之后实现的,主要是工作当中操作 xml 的时间太多,因为公司按任务计“工作量”,领导给我安排的时间远远不够完善此工具[悲哀的制度],虽然我也能直接在cs中直接中规中矩完成,但实在受不了那种重复和低效,所以此工具基础部分绝大部分时间是在家中加班完成,剩下应用于公司项目中之后,在公司改了一些BUG,差不多也用了半年多了,实在是很好用,现在也差不多稳定了,特分享出来,需要的直接拿去用吧,有BUG可以直接发消息给我沟通,不用谢.. 使用方法: x(filepath).Find("/

.net学习笔记---xml操作及读写

一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应.net中的类 处理指令 XmlProcessingInstruction 专指元素节点 XmlElement 属性 XmlAttribute 文本节点 XmlText 节点 XmlNode 文档 XmlDocument XmlWriter 对象的特性 XmlWriterSettings 注释 Xm