C#个人珍藏基础类库分享 — 7、Xml处理帮助类XmlHelper

        做.NET开发的同学,一套简单易用的基础类库是必不可少的,这里把我混迹C#圈子十余载珍藏的类库分享出来,希望能够给刚踏入开发门槛的朋友一些帮助。

        后续会逐步分享基础库的其余部分,先列个大纲:

C#个人珍藏基础类库分享 — 1、通用缓存帮助类CacheHelper
C#个人珍藏基础类库分享 — 2、Memcached缓存帮助类MemcachedHelper
C#个人珍藏基础类库分享 — 3、目录、文件帮助类FileHelper
C#个人珍藏基础类库分享 — 4、字节数组帮助类BytesObjectHelper
C#个人珍藏基础类库分享 — 5、日志帮助类LogHelper
C#个人珍藏基础类库分享 — 6、数据库处理帮助类SqlHelper
C#个人珍藏基础类库分享 — 7、Xml处理帮助类XmlHelper
C#个人珍藏基础类库分享 — 8、通用工具帮助类ToolHelper

Xml处理帮助类包括方法目录如下:

1、依据XML文件或XML格式字符串,获得XmlDocument对象。

2、将XmlDocument对象保存为指定路径的XML文件。

3、获取XPATH指定节点的值。

4、设置XPATH指定节点的值。

5、获取XPATH指定节点下,指定属性的值。

6、设置XPATH指定节点下,指定属性的值。

7、更新XML文件的节点的值。

8、更新XML文件的节点下指定属性的值。

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

namespace BaseUtilities
{
    /// <summary>
    /// Xml常用处理方法集合.
    /// </summary>
    public class XmlHelper
    {
        /// <summary>
        /// 依据XML文件或XML格式字符串,获得XmlDocument对象。
        /// </summary>
        /// <param name="filePathOrXmlStr">XML文件路径(或XML格式字符串)</param>
        /// <returns>返回XmlDocument对象,出现异常时返回值为空</returns>
        public static XmlDocument GetXmlDoc(string filePathOrXmlStr)
        {
            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                if (File.Exists(filePathOrXmlStr))
                {
                    xmlDoc.Load(filePathOrXmlStr);
                }
                else
                {
                    xmlDoc.LoadXml(filePathOrXmlStr);
                }
                return xmlDoc;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        /// <summary>
        /// 将XmlDocument对象保存为指定路径的XML文件。
        /// </summary>
        /// <param name="filePath">XML文件路径</param>
        /// <param name="xmlDoc">XmlDocument对象</param>
        /// <returns>出现异常时返回值为False</returns>
        public static bool SaveXmlDoc(string filePath, XmlDocument xmlDoc)
        {
            try
            {
                xmlDoc.Save(filePath);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        /// <summary>
        /// 获取XPATH指定节点的值。
        /// </summary>
        /// <param name="xmlDoc">XmlDocument对象</param>
        /// <param name="xpath">XPATH字符串参数,如://CacheTime、//settings/CacheTime、...</param>
        /// <returns>出现异常时,返回值为空</returns>
        public static string GetNodeValue(XmlDocument xmlDoc, string xpath)
        {
            try
            {
                return xmlDoc.DocumentElement.SelectSingleNode(xpath).InnerText;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        /// <summary>
        /// 设置XPATH指定节点的值。
        /// </summary>
        /// <param name="xmlDoc">XmlDocument对象</param>
        /// <param name="xpath">XPATH值,如://CacheTime、//appSettings/CacheTime、...</param>
        /// <param name="nodeVal">要设置的节点的值</param>
        /// <returns>出现异常时,返回值为False</returns>
        public static bool SetNodeValue(ref XmlDocument xmlDoc, string xpath, string nodeVal)
        {
            try
            {
                xmlDoc.DocumentElement.SelectSingleNode(xpath).InnerText = nodeVal;
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        /// <summary>
        /// 获取XPATH指定节点下,指定属性的值。
        /// </summary>
        /// <param name="xmlDoc">XmlDocument对象</param>
        /// <param name="nodePath">XPATH值,如://CacheTime、//appSettings/CacheTime、...</param>
        /// <param name="attrName">要设置的节点属性名称</param>
        /// <returns></returns>
        public static string GetNodeAttr(XmlDocument xmlDoc, string nodePath, string attrName)
        {
            try
            {
                XmlNode node = xmlDoc.DocumentElement.SelectSingleNode(nodePath);
                return node.Attributes[attrName].Value;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        /// <summary>
        /// 设置XPATH指定节点下,指定属性的值。
        /// </summary>
        /// <param name="xmlDoc">XmlDocument对象</param>
        /// <param name="nodePath">XPATH值,如://CacheTime、//appSettings/CacheTime、...</param>
        /// <param name="attrName">要设置的节点属性名称</param>
        /// <param name="attrVal">要设置的节点属性的值</param>
        /// <returns></returns>
        public static bool SetNodeAttr(ref XmlDocument xmlDoc, string nodePath, string attrName, string attrVal)
        {
            try
            {
                XmlNode node = xmlDoc.DocumentElement.SelectSingleNode(nodePath);
                ((XmlElement)node).SetAttribute(attrName, attrVal);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        /// <summary>
        /// 更新XML文件的节点的值。
        /// <para>操作步骤:打开XML->更新节点->写入XML文件,因此,本方法不适用于频繁调用。</para>
        /// </summary>
        /// <param name="filePath">XML文件路径</param>
        /// <param name="xpath">XPATH值,如://CacheTime、//appSettings/CacheTime、...</param>
        /// <param name="nodeVal">要设置的节点的值</param>
        /// <returns></returns>
        public static bool UpdateXmlFileNodeValue(string filePath, string xpath, string nodeVal)
        {
            XmlDocument xmlDoc = GetXmlDoc(filePath);
            if (SetNodeValue(ref xmlDoc, xpath, nodeVal))
                return SaveXmlDoc(filePath, xmlDoc);
            return false;
        }

        /// <summary>
        /// 更新XML文件的节点下指定属性的值。
        /// <para>操作步骤:打开XML->更新节点->写入XML文件,因此,本方法不适用于频繁调用。</para>
        /// </summary>
        /// <param name="filePath">XML文件路径</param>
        /// <param name="nodePath">xpath值,如://CacheTime、//appSettings/CacheTime、...</param>
        /// <param name="attrName">要设置的节点属性名称</param>
        /// <param name="attrVal">要设置的节点属性的值</param>
        /// <returns></returns>
        public static bool UpdateXmlFileNodeAttr(string filePath, string nodePath, string attrName, string attrVal)
        {
            XmlDocument xmlDoc = GetXmlDoc(filePath);
            if (SetNodeAttr(ref xmlDoc, nodePath, attrName, attrVal))
                return SaveXmlDoc(filePath, xmlDoc);
            return false;
        }
    }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
超级多的C#辅助类大全 网上有各式各样的帮助类,公共类,但是比较零碎,经常有人再群里或者各种社交账号上问有没有这个helper,那个helper,于是萌生了收集全部helper的念头,以便日后使用。各式各样的几乎都能找到,所有功能性代码都是独立的类,类与类之间没有联系,可以单独引用至项目。 1. C#读取AD域里用户名或组 2. Chart图形 3. cmd 4. Cookie&Session 5. CSV文件转换 6. DataTable转实体 7. DBHelper 8. DecimalUtility及中文大写数字 9. DLL 10. Excel操作类 11. FTP操作类 12. H5-微信 13. Html操作类 14. INI文件读写类 15. IP辅助类 16. Javascript 17. Json 18. JSON操作 19. JS操作 20. Lib 21. Mime 22. Net 23. NPOI 24. obj 25. packages 26. Path 27. PDF 28. Properties 29. QueryString 地址栏参数 30. RDLC直接打印帮助类 31. ResourceManager 32. RMB 33. SqlHelper 34. SQL语句拦截器 35. URL的操作类 36. VerifyCode 37. XML操作类 38. 上传下载 39. 二维码操作类 40. 共用工具类 41. 其他 42. 分词辅助类 43. 分页 44. 加密解密 45. 压缩解压缩 46. 各种验证帮助类 47. 图片 48. 图片操作类 49. 图片验证码 50. 处理多媒体的公共类 51. 处理枚举类 52. 字符串 53. 对象转换处理 54. 帮助文档 55. 序列化 56. 异步线程 57. 弹出消息类 58. 数据展示控件绑定数据类 59. 文件操作类 60. 日历 61. 日志 62. 时间戳 63. 时间操作类 64. 条形码 65. 条形码帮助类 66. 条形码转HTML 67. 检测是否有Sql危险字符 68. 正则表达式 69. 汉字转拼音 70. 注册表操作类 71. 科学计数,数学 72. 类型转换 73. 系统操作相关的公共类 74. 缓存 75. 网站安全 76. 网站路径操作类 77. 网络 78. 视频帮助类 79. 视频转换类 80. 计划任务 81. 邮件 82. 邮件2 83. 配置文件操作类 84. 阿里云 85. 随机数类 86. 页面辅助类 87. 验证码
C#基础 1.Chart图形 Assistant创建显示图像的标签和文件 OWCChart统计图的封装类 2.Cookie&Session;&Cache;缓存帮助类 CacheHelper C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的帮助类,添加Cookie,删除Cookie,修改Cookie,清理Cookie SessionHelper C#关于Session的操作,获取Session,设置Session,删除Session使用方便,只需要调用方法就可以了 SessionHelper2 C#关于Session的一些高级操作,比如取Session对象,取Session数据等等 3.CSV文件转换 CsvHelper CSV文件导入DataTable和DataTable导出到Csv文件等操作 4.DEncrypt 加密/解密帮助类 DEncrypt C#DEncrypt加密/DEncrypt解密帮助类 ,多种方式,可以设置Key DESEncrypt C#DESEncrypt加密/DESEncrypt解密帮助类 ,多种方式,可以设置Key Encrypt C#Encrypt--Encrypt加密/Encrypt解密/附加有MD5加密,个人感觉很不错的一个加密类 HashEncode 哈希加密帮助类,得到随机哈希加密字符串,随机哈希数字加密等 MySecurity MySecurity--Security安全加密/Security Base64/Security文件加密,以及一些常用的操作方法 RSACryption RSACryption--RSA加密/RSA解密字符串 RSA加密应用最多是银行接口,这里的方法可以直接使用哦 5.FTP操作类 FTPClient   FTPClient--FTP操作帮助类,FTP上传,FTP下载,FTP文件操作,FTP目录操作 FTPHelper FTPHelper-FTP帮助类,FTP常用操作方法,添加文件,删除文件等 FTPOperater FTP操作帮助类,方法比较多,比较实用 6.JS操作类 JsHelper JsHelper--Javascript操作帮助类,输出各种JS方法,方便不懂JS的人使用,减少代码量 7.JSON 转化类 ConvertJson List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件类型帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类 MimeHeaders mime的Header帮助类 MimeReader mime读取帮助类 QuotedPrintableEncoding mimeEncoding帮助类 9.PDF 转化类 PDFOperation PDFOperation--C#PDF文件操作帮助类 类主要功能有1.构造函数2.私有字段3.设置字体4.设置页面大小 5.实例化文档6.打开文档对象7.关闭打开的文档8.添加段落9.添加图片10.添加链接、点 等功能 10.ResourceManager 操作类 AppMessage app消息格式化类,返加字符串帮助类 ResourceManager C#一个操作Resource的帮助类 ResourceManagerWrapper Resources 操作Resources的帮助类,使用Api的方式 Sample.xml 11.XML操作类 XmlHelper 操作Xml文档的帮助类,主要是添加,删除,修改,查询节点的操作和操作后进行保存的功能。 XMLProcess 操作Xml文档的帮助类,主要是添加,删除,修改,查询节点的操作的功能。 12.弹出消息类 MessageBox JS弹出信息帮助类 ShowMessageBox 相对于MessageBox更丰富的提示类 13.导出Excel 操作类 DataToExcel

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MarcoPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值