XML操作类

本文介绍了一个用于创建、修改和读取XML文件的.NET类。该类提供了创建XML文件、添加节点、读取文档和节点等方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System; using System.Collections.Generic; using System.Text; using System.Xml; namespace NetProject.Property { public class XmlDoc { /// <summary> /// 创建Xml文件 /// </summary> /// <param name="xmlPath">创建文件路径</param> /// <param name="element"></param> public void CreateXmlNode(string xmlPath, string element) { //实例化Xml文档类 XmlTextWriter xmlTextWriter = new XmlTextWriter(xmlPath,Encoding.UTF8); //创建Xml声明 xmlTextWriter.WriteStartDocument(); xmlTextWriter.WriteStartElement(element); xmlTextWriter.Flush(); xmlTextWriter.Close(); } /// <summary> /// 新增Xml节点 /// </summary> /// <param name="xmlPath"></param> /// <param name="singleNode"></param> /// <param name="node"></param> public void AddXmlElement(string xmlPath, string singleNode, XmlNode node) { //实例化Xml文档类 XmlDocument xmlDocument = new XmlDocument(); //加载Xml文件 xmlDocument.Load(xmlPath); xmlDocument.SelectSingleNode(singleNode).AppendChild(node); xmlDocument.Save(xmlPath); } /// <summary> /// 新增Xml节点 /// </summary> /// <param name="xmlPath"></param> /// <param name="singleNode"></param> /// <param name="node"></param> public void AddXmlElement(string xmlPath, string singleNode, string element, string attribute, string value) { //实例化Xml文档类 XmlDocument xmlDocument = new XmlDocument(); //加载Xml文件 xmlDocument.Load(xmlPath); XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode); XmlElement xmlElement = xmlDocument.CreateElement(element); ; xmlElement.SetAttribute(attribute, value); xmlDocument.Save(xmlPath); } /// <summary> /// 读取XML文件的XmlDocument /// </summary> /// <param name="xmlPath">Xml文件路径</param> /// <returns></returns> public XmlDocument GetXmlDocument(string xmlPath) { try { //实例化Xml文档类 XmlDocument xmlDocument = new XmlDocument(); //加载Xml文件 xmlDocument.Load(GetMapPath(xmlPath)); return xmlDocument; } catch (System.Xml.XmlException exp) { throw exp; } catch (System.IO.IOException exp) { throw exp; } catch (ArgumentNullException exp) { throw exp; } catch (ArgumentException exp) { throw exp; } catch (Exception exp) { throw exp; } } /// <summary> /// 读取XML文件的XmlNode /// </summary> /// <param name="xmlPath">Xml文件路径</param> /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param> /// <returns></returns> public XmlNode GetXmlNode(string xmlPath, string singleNode) { try { //实例化Xml文档类 XmlDocument xmlDocument = new XmlDocument(); //加载Xml文件 xmlDocument.Load(GetMapPath(xmlPath)); //获取文件内容 return xmlDocument.SelectSingleNode(singleNode); } catch (System.Xml.XPath.XPathException exp) { throw exp; } catch (System.Xml.XmlException exp) { throw exp; } catch (System.IO.IOException exp) { throw exp; } catch (ArgumentNullException exp) { throw exp; } catch (ArgumentException exp) { throw exp; } catch (Exception exp) { throw exp; } } /// <summary> /// 读取XML文件的XmlElement /// </summary> /// <param name="xmlPath">Xml文件路径</param> /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param> /// <param name="xmlNodeString">节点名称</param> /// <returns></returns> public XmlElement GetXmlElement(string xmlPath, string singleNode, string xmlNodeString) { try { //实例化Xml文档类 XmlDocument xmlDocument = new XmlDocument(); //加载Xml文件 xmlDocument.Load(GetMapPath(xmlPath)); //获取文件内容 XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode); //提取节点名称下的属性值 return xmlNode[xmlNodeString]; } catch (System.Xml.XPath.XPathException exp) { throw exp; } catch (System.Xml.XmlException exp) { throw exp; } catch (System.IO.IOException exp) { throw exp; } catch (ArgumentNullException exp) { throw exp; } catch (ArgumentException exp) { throw exp; } catch (Exception exp) { throw exp; } } /// <summary> /// 读取XML文件的节点属性 /// </summary> /// <param name="xmlPath">Xml文件路径</param> /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param> /// <param name="xmlNodeString">节点名称</param> /// <param name="variables">节点属性</param> /// <returns></returns> public string GetAttribute(string xmlPath, string singleNode, string xmlNodeString, string variables) { try { //实例化Xml文档类 XmlDocument xmlDocument = new XmlDocument(); //加载Xml文件 xmlDocument.Load(GetMapPath(xmlPath)); //获取文件内容 XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode); //提取节点名称下的属性值 return xmlNode[xmlNodeString].GetAttribute(variables); } catch (System.Xml.XPath.XPathException exp) { throw exp; } catch (System.Xml.XmlException exp) { throw exp; } catch (System.IO.IOException exp) { throw exp; } catch (ArgumentNullException exp) { throw exp; } catch (ArgumentException exp) { throw exp; } catch (Exception exp) { throw exp; } } /// <summary> /// 设置XML节点 /// </summary> /// <param name="xmlNodeString">节点名称</param> /// <param name="value">节点值</param> /// <param name="discrption">节点说明</param> public void SetAttribute(string xmlPath, string singleNode,string xmlNodeString, string attribute,string value,string description) { try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(GetMapPath(xmlPath)); //获取文件内容 XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode); //设置指定XML节点Value值 xmlNode[xmlNodeString].SetAttribute(attribute, value); xmlNode[xmlNodeString].SetAttribute("Description", description); //将设置后的XML节点保存 xmlDocument.Save(GetMapPath(xmlPath)); } catch (Exception exp) { throw new Exception(exp.Message); } } /// <summary> /// 设置XML节点 /// </summary> /// <param name="xmlPath">XML文件路径</param> /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param> /// <param name="xmlNodeString">指定节点</param> /// <param name="attribute">属性数组</param> /// <param name="value">值数组</param> public void SetAttribute(string xmlPath, string singleNode, string xmlNodeString, string[] attribute, string[] value) { try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(GetMapPath(xmlPath)); //获取文件内容 XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode); for (int i = 0; i < attribute.Length; i++) { //设置指定XML节点Value值 xmlNode[xmlNodeString].SetAttribute(attribute[i], value[i]); } //将设置后的XML节点保存 xmlDocument.Save(xmlPath); } catch (Exception exp) { throw new Exception(exp.Message); } } /// <summary> /// 通过XML名称获取XML物理路径,可无限添加,前提是XML都位于同一网站目录下 /// </summary> /// <param name="xmlName"></param> /// <returns></returns> private string GetMapPath(string xmlName) { switch (xmlName) { case "GlobalVariables.xml": xmlName = System.Web.HttpContext.Current.Server.MapPath("~/XML/") + xmlName; break; default: break; } return xmlName; } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值