C#-XML操作类的代码实例详解

互联网 17-3-7
写的一个XML操作类,包括读取/插入/修改/删除。
using System;  using System.Data;  using System.Configuration;  using System.Web;  using System.Web.Security;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Web.UI.WebControls.WebParts;  using System.Web.UI.HtmlControls;  using System.Xml;    namespace PuTianCheng  {      /// <summary>      /// XmlHelper 的摘要说明      /// </summary>      public class XmlHelper      {          public XmlHelper()          {          }            /// <summary>          /// 读取数据          /// </summary>          /// <param name="path">路径</param>          /// <param name="node">节点</param>          /// <param name="attribute">属性名,非空时返回该属性值,否则返回串联值</param>          /// <returns>string</returns>          /**************************************************           * 使用示列:           * XmlHelper.Read(path, "/Node", "")           * XmlHelper.Read(path, "/Node/Element[@Attribute='Name']", "Attribute")           ************************************************/          public static string Read(string path, string node, string attribute)          {              string value = "";              try              {                  XmlDocument doc = new XmlDocument();                  doc.Load(path);                  XmlNode xn = doc.SelectSingleNode(node);                  value = (attribute.Equals("") ? xn.InnerText : xn.Attributes[attribute].Value);              }              catch { }              return value;          }            /// <summary>          /// 插入数据          /// </summary>          /// <param name="path">路径</param>          /// <param name="node">节点</param>          /// <param name="element">元素名,非空时插入新元素,否则在该元素中插入属性</param>          /// <param name="attribute">属性名,非空时插入该元素属性值,否则插入元素值</param>          /// <param name="value">值</param>          /// <returns></returns>          /**************************************************           * 使用示列:           * XmlHelper.Insert(path, "/Node", "Element", "", "Value")           * XmlHelper.Insert(path, "/Node", "Element", "Attribute", "Value")           * XmlHelper.Insert(path, "/Node", "", "Attribute", "Value")           ************************************************/          public static void Insert(string path, string node, string element, string attribute, string value)          {              try              {                  XmlDocument doc = new XmlDocument();                  doc.Load(path);                  XmlNode xn = doc.SelectSingleNode(node);                  if (element.Equals(""))                  {                      if (!attribute.Equals(""))                      {                          XmlElement xe = (XmlElement)xn;                          xe.SetAttribute(attribute, value);                      }                  }                  else                  {                      XmlElement xe = doc.CreateElement(element);                      if (attribute.Equals(""))                          xe.InnerText = value;                      else                          xe.SetAttribute(attribute, value);                      xn.AppendChild(xe);                  }                  doc.Save(path);              }              catch { }          }            /// <summary>          /// 修改数据          /// </summary>          /// <param name="path">路径</param>          /// <param name="node">节点</param>          /// <param name="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param>          /// <param name="value">值</param>          /// <returns></returns>          /**************************************************           * 使用示列:           * XmlHelper.Insert(path, "/Node", "", "Value")           * XmlHelper.Insert(path, "/Node", "Attribute", "Value")           ************************************************/          public static void Update(string path, string node, string attribute, string value)          {              try              {                  XmlDocument doc = new XmlDocument();                  doc.Load(path);                  XmlNode xn = doc.SelectSingleNode(node);                  XmlElement xe = (XmlElement)xn;                  if (attribute.Equals(""))                      xe.InnerText = value;                  else                      xe.SetAttribute(attribute, value);                  doc.Save(path);              }              catch { }          }            /// <summary>          /// 删除数据          /// </summary>          /// <param name="path">路径</param>          /// <param name="node">节点</param>          /// <param name="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param>          /// <param name="value">值</param>          /// <returns></returns>          /**************************************************           * 使用示列:           * XmlHelper.Delete(path, "/Node", "")           * XmlHelper.Delete(path, "/Node", "Attribute")           ************************************************/          public static void Delete(string path, string node, string attribute)          {              try              {                  XmlDocument doc = new XmlDocument();                  doc.Load(path);                  XmlNode xn = doc.SelectSingleNode(node);                  XmlElement xe = (XmlElement)xn;                  if (attribute.Equals(""))                      xn.ParentNode.RemoveChild(xn);                  else                      xe.RemoveAttribute(attribute);                  doc.Save(path);              }              catch { }          }      }  }

==================================================

<?xml version="1.0" encoding="utf-8"?>  <Root />

==================================================

使用方法:

string xml = Server.MapPath("XmlFile.xml");  //插入元素  //XmlHelper.Insert(xml, "/Root", "Studio", "", "");  //插入元素/属性  //XmlHelper.Insert(xml, "/Root/Studio", "Site", "Name", "小路工作室");  //XmlHelper.Insert(xml, "/Root/Studio", "Site", "Name", "丁香鱼工作室");  //XmlHelper.Insert(xml, "/Root/Studio", "Site", "Name", "五月软件");  //XmlHelper.Insert(xml, "/Root/Studio/Site[@Name='五月软件]", "Master", "", "五月");  //插入属性  //XmlHelper.Insert(xml, "/Root/Studio/Site[@Name='小路工作室']", "", "Url", "http://www.wzlu.com/");  //XmlHelper.Insert(xml, "/Root/Studio/Site[@Name='丁香鱼工作室']", "", "Url", "http://www.luckfish.net/");  //XmlHelper.Insert(xml, "/Root/Studio/Site[@Name='五月软件]", "", "Url", "http://www.vs2005.com.cn/");  //修改元素值  //XmlHelper.Update(xml, "/Root/Studio/Site[@Name='五月软件]/Master", "", "Wuyue");  //修改属性值  //XmlHelper.Update(xml, "/Root/Studio/Site[@Name='五月软件]", "Url", "http://www.vs2005.com.cn/");  //XmlHelper.Update(xml, "/Root/Studio/Site[@Name='五月软件]", "Name", "MaySoft");  //读取元素值  //Response.Write("<p>" + XmlHelper.Read(xml, "/Root/Studio/Site/Master", "") + "</p>");  //读取属性值  //Response.Write("<p>" + XmlHelper.Read(xml, "/Root/Studio/Site", "Url") + "</p>");  //读取特定属性值  //Response.Write("<p>" + XmlHelper.Read(xml, "/Root/Studio/Site[@Name='丁香鱼工作室']", "Url") + "</p>");  //删除属性  //XmlHelper.Delete(xml, "/Root/Studio/Site[@Name='小路工作室']", "Url");  //删除元素  //XmlHelper.Delete(xml, "/Root/Studio", "");

以上就是C#-XML操作类的代码实例详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:详细介绍XML技术上传文件

相关资讯