<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相关推荐

  1. oracle SEQUENCE 创建, 修改,删除

    oracle创建序列化: CREATE SEQUENCE seq_itv_collection             INCREMENT BY 1  -- 每次加几个               S ...

  2. 在同一session内创建, 修改和删除IBASE component

    Created by Jerry Wang, last modified on May 02, 2014 该report 实现了在同一session内: 创建新的Individual Object 创 ...

  3. SQL Server - 数据库(创建,修改管理-删除)-T-SQL 语句

    数据库 创建数据库 语法 CREATE DATABASE database_name ON(NAME = data_logical_file_name , FILENAME = 'data_os_fi ...

  4. BAPI : 计划订单的创建,修改和删除批导问题

    #遇见问题: 1.这三个BAPI一般用在批导程序中,有时候赋值过程中就会忽视计划订单的前导零.并且,在SE37里面对BAPI进行测试的时候,不输入前导零BAPI也会返回正确的结果,然而程序里并不行.个 ...

  5. 【.NET】XML文件的创建,修改,删除

    类名:XML /// 1.创建XML文档 /// 2.在根节点下增加子元素 /// 3.在元素下增加子元素 /// 4.获取类型为制定值的一组节点 /// 5.抓取网页上的xml文档赋值给XmlDoc ...

  6. ASP.NET XML读取、增加、修改和删除操作

    C#-XML读取.增加.修改和删除操作 1.xml文件格式如下: <?xml version="1.0" encoding="utf-8"?> &l ...

  7. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  8. 【Unity3D读取数据】(四)Excel文件操作(创建、读取、写入、修改)

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  9. java解析xml文件:创建、读取、遍历、增删查改、保存

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用JDOM接口解析xml文件,包含创建.增删查改.保存,读取等操作. 需要引入jdom.jar,下载 xercesImpl.jar,下载 ...

最新文章

  1. C++实现图像的绘制并实现鼠标交互
  2. mysql当前时间减1小时_最佳睡眠时间:晚上睡眠不超8小时,午睡不超1小时
  3. 实例讲解sed的9种常见用法
  4. jQuery中实现全选功能时使用attr( )改变checked值只能生效一次的问题
  5. EGOImageView 解析
  6. 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
  7. 如何给mac地址赋值_交换机工作基础——MAC地址表的构成与安全
  8. Navicat打开保存的查询
  9. 二维码的扫描和生成(zxing-android-embedded)的基础使用
  10. 查看Sql语句执行速度
  11. tablelayout高度问题
  12. SQL从入门到不是怎么精通
  13. KEPServerEX V6轻松连接Wonderware InTouch
  14. Speedpdf——无需下载软件,就可以免费轻松搞定CAJ转word
  15. java三维动画_基于Java3D的交互式三维动画的研究
  16. 生成式人工智能是否会是下一个风口?
  17. PDPS软件:机器人TCP轨迹跟踪功能介绍与使用方法
  18. 用好【shareinstall】 App推广转化率提升80% so easy!
  19. 虚拟光驱dameon tools 残留 文件catch!删除方法
  20. java is a_java中的继承(is a )和组合(has a)

热门文章

  1. shape的各种获取、更改以及设置方式辨析
  2. Haproxy + Pacemaker 实现高可用负载均衡(二)
  3. MySQL通过存储过程使用循环结构循环创建数据,以及批量数据的导入导出
  4. 王道计算机考研 数据结构 (查找-上)
  5. activemq启动wrapper stopped
  6. ext.js组件的基本操作
  7. 装配bean的三种方式
  8. python报错_python 常见报错
  9. ecshop 搜索热词推荐_拼多多搜索推广实操——如何选择正确的关键词实现高投产!...
  10. python超时退出进程_Python如何实现让一个函数超时退出?