C#xml创建修改读取删除帮助类XmlHelper.cs
<strong><span style="color:#ff0000;">【XML帮助类】C#xml创建修改读取删除帮助类XmlHelper.cs
<a target=_blank href="http://bbs.cskin.net/forum.php?mod=viewthread&tid=189&fromuid=2446">http://bbs.cskin.net/forum.php?mod=viewthread&tid=189&fromuid=2446</a>
(出处: CSkin论坛)
介绍:
</span></strong> 一个很好用的Xml帮助类,包含创建文件,创建节点,获取指定XPtah表达式的节点的值,删除指定节点等等,需要引用命名空间System.Xml。using System.Xml;
using System.Data;namespace HelloCsharp.Utilities
{/// <summary>/// Xml的操作公共类/// </summary> public class XmlHelper{#region 字段定义/// <summary>/// XML文件的物理路径/// </summary>private string _filePath = string.Empty;/// <summary>/// Xml文档/// </summary>private XmlDocument _xml;/// <summary>/// XML的根节点/// </summary>private XmlElement _element;#endregion#region 构造方法/// <summary>/// 实例化XmlHelper对象/// </summary>/// <param name="xmlFilePath">Xml文件的相对路径</param>public XmlHelper(string xmlFilePath){//获取XML文件的绝对路径_filePath = SysHelper.GetPath(xmlFilePath);}#endregion#region 创建XML的根节点/// <summary>/// 创建XML的根节点/// </summary>private void CreateXMLElement(){//创建一个XML对象_xml = new XmlDocument();if (DirFileHelper.IsExistFile(_filePath)){//加载XML文件_xml.Load(this._filePath);}//为XML的根节点赋值_element = _xml.DocumentElement;}#endregion#region 获取指定XPath表达式的节点对象/// <summary>/// 获取指定XPath表达式的节点对象/// </summary> /// <param name="xPath">XPath表达式,/// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"/// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点./// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性./// </param>public XmlNode GetNode(string xPath){//创建XML的根节点CreateXMLElement();//返回XPath节点return _element.SelectSingleNode(xPath);}#endregion#region 获取指定XPath表达式节点的值/// <summary>/// 获取指定XPath表达式节点的值/// </summary>/// <param name="xPath">XPath表达式,/// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"/// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点./// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性./// </param>public string GetValue(string xPath){//创建XML的根节点CreateXMLElement();//返回XPath节点的值return _element.SelectSingleNode(xPath).InnerText;}#endregion#region 获取指定XPath表达式节点的属性值/// <summary>/// 获取指定XPath表达式节点的属性值/// </summary>/// <param name="xPath">XPath表达式,/// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"/// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点./// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性./// </param>/// <param name="attributeName">属性名</param>public string GetAttributeValue(string xPath, string attributeName){//创建XML的根节点CreateXMLElement();//返回XPath节点的属性值return _element.SelectSingleNode(xPath).Attributes[attributeName].Value;}#endregion#region 新增节点/// <summary>/// 1. 功能:新增节点。/// 2. 使用条件:将任意节点插入到当前Xml文件中。/// </summary> /// <param name="xmlNode">要插入的Xml节点</param>public void AppendNode(XmlNode xmlNode){//创建XML的根节点CreateXMLElement();//导入节点XmlNode node = _xml.ImportNode(xmlNode, true);//将节点插入到根节点下_element.AppendChild(node);}/// <summary>/// 1. 功能:新增节点。/// 2. 使用条件:将DataSet中的第一条记录插入Xml文件中。/// </summary> /// <param name="ds">DataSet的实例,该DataSet中应该只有一条记录</param>public void AppendNode(DataSet ds){//创建XmlDataDocument对象XmlDataDocument xmlDataDocument = new XmlDataDocument(ds);//导入节点XmlNode node = xmlDataDocument.DocumentElement.FirstChild;//将节点插入到根节点下AppendNode(node);}#endregion#region 删除节点/// <summary>/// 删除指定XPath表达式的节点/// </summary> /// <param name="xPath">XPath表达式,/// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"/// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点./// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性./// </param>public void RemoveNode(string xPath){//创建XML的根节点CreateXMLElement();//获取要删除的节点XmlNode node = _xml.SelectSingleNode(xPath);//删除节点_element.RemoveChild(node);}#endregion //删除节点#region 保存XML文件/// <summary>/// 保存XML文件/// </summary> public void Save(){//创建XML的根节点CreateXMLElement();//保存XML文件_xml.Save(this._filePath);}#endregion //保存XML文件#region 静态方法#region 创建根节点对象/// <summary>/// 创建根节点对象/// </summary>/// <param name="xmlFilePath">Xml文件的相对路径</param> private static XmlElement CreateRootElement(string xmlFilePath){//定义变量,表示XML文件的绝对路径string filePath = "";//获取XML文件的绝对路径filePath = SysHelper.GetPath(xmlFilePath);//创建XmlDocument对象XmlDocument xmlDocument = new XmlDocument();//加载XML文件xmlDocument.Load(filePath);//返回根节点return xmlDocument.DocumentElement;}#endregion#region 获取指定XPath表达式节点的值/// <summary>/// 获取指定XPath表达式节点的值/// </summary>/// <param name="xmlFilePath">Xml文件的相对路径</param>/// <param name="xPath">XPath表达式,/// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"/// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点./// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性./// </param>public static string GetValue(string xmlFilePath, string xPath){//创建根对象XmlElement rootElement = CreateRootElement(xmlFilePath);//返回XPath节点的值return rootElement.SelectSingleNode(xPath).InnerText;}#endregion#region 获取指定XPath表达式节点的属性值/// <summary>/// 获取指定XPath表达式节点的属性值/// </summary>/// <param name="xmlFilePath">Xml文件的相对路径</param>/// <param name="xPath">XPath表达式,/// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"/// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点./// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性./// </param>/// <param name="attributeName">属性名</param>public static string GetAttributeValue(string xmlFilePath, string xPath, string attributeName){//创建根对象XmlElement rootElement = CreateRootElement(xmlFilePath);//返回XPath节点的属性值return rootElement.SelectSingleNode(xPath).Attributes[attributeName].Value;}#endregion#endregionpublic static void SetValue(string xmlFilePath, string xPath, string newtext){//string path = SysHelper.GetPath(xmlFilePath);//var queryXML = from xmlLog in xelem.Descendants("msg_log")// //所有名字为Bin的记录// where xmlLog.Element("user").Value == "Bin"// select xmlLog;//foreach (XElement el in queryXML)//{// el.Element("user").Value = "LiuBin";//开始修改//}//xelem.Save(path);}}
}
C#xml创建修改读取删除帮助类XmlHelper.cs相关推荐
- oracle SEQUENCE 创建, 修改,删除
oracle创建序列化: CREATE SEQUENCE seq_itv_collection INCREMENT BY 1 -- 每次加几个 S ...
- 在同一session内创建, 修改和删除IBASE component
Created by Jerry Wang, last modified on May 02, 2014 该report 实现了在同一session内: 创建新的Individual Object 创 ...
- SQL Server - 数据库(创建,修改管理-删除)-T-SQL 语句
数据库 创建数据库 语法 CREATE DATABASE database_name ON(NAME = data_logical_file_name , FILENAME = 'data_os_fi ...
- BAPI : 计划订单的创建,修改和删除批导问题
#遇见问题: 1.这三个BAPI一般用在批导程序中,有时候赋值过程中就会忽视计划订单的前导零.并且,在SE37里面对BAPI进行测试的时候,不输入前导零BAPI也会返回正确的结果,然而程序里并不行.个 ...
- 【.NET】XML文件的创建,修改,删除
类名:XML /// 1.创建XML文档 /// 2.在根节点下增加子元素 /// 3.在元素下增加子元素 /// 4.获取类型为制定值的一组节点 /// 5.抓取网页上的xml文档赋值给XmlDoc ...
- ASP.NET XML读取、增加、修改和删除操作
C#-XML读取.增加.修改和删除操作 1.xml文件格式如下: <?xml version="1.0" encoding="utf-8"?> &l ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
- 【Unity3D读取数据】(四)Excel文件操作(创建、读取、写入、修改)
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- java解析xml文件:创建、读取、遍历、增删查改、保存
全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用JDOM接口解析xml文件,包含创建.增删查改.保存,读取等操作. 需要引入jdom.jar,下载 xercesImpl.jar,下载 ...
最新文章
- C++实现图像的绘制并实现鼠标交互
- mysql当前时间减1小时_最佳睡眠时间:晚上睡眠不超8小时,午睡不超1小时
- 实例讲解sed的9种常见用法
- jQuery中实现全选功能时使用attr( )改变checked值只能生效一次的问题
- EGOImageView 解析
- 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
- 如何给mac地址赋值_交换机工作基础——MAC地址表的构成与安全
- Navicat打开保存的查询
- 二维码的扫描和生成(zxing-android-embedded)的基础使用
- 查看Sql语句执行速度
- tablelayout高度问题
- SQL从入门到不是怎么精通
- KEPServerEX V6轻松连接Wonderware InTouch
- Speedpdf——无需下载软件,就可以免费轻松搞定CAJ转word
- java三维动画_基于Java3D的交互式三维动画的研究
- 生成式人工智能是否会是下一个风口?
- PDPS软件:机器人TCP轨迹跟踪功能介绍与使用方法
- 用好【shareinstall】 App推广转化率提升80% so easy!
- 虚拟光驱dameon tools 残留 文件catch!删除方法
- java is a_java中的继承(is a )和组合(has a)
热门文章
- shape的各种获取、更改以及设置方式辨析
- Haproxy + Pacemaker 实现高可用负载均衡(二)
- MySQL通过存储过程使用循环结构循环创建数据,以及批量数据的导入导出
- 王道计算机考研 数据结构 (查找-上)
- activemq启动wrapper stopped
- ext.js组件的基本操作
- 装配bean的三种方式
- python报错_python 常见报错
- ecshop 搜索热词推荐_拼多多搜索推广实操——如何选择正确的关键词实现高投产!...
- python超时退出进程_Python如何实现让一个函数超时退出?