C#实现的XML操作类实例

前端技术 2023/09/03 C#

本文实例讲述了C#实现的XML操作类。分享给大家供大家参考。具体如下:

这里讲述了C#写的一个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>
  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>
  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_x(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>
  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>
  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 { }
  }
 }
}

XmlFile.xml:

<?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.putiancheng.com/\");
//修改元素值
XmlHelper.Update(xml, \"/Root/Studio/Site[@Name=\'谱天城工作室\']/Master\", \"\", \"RedDust\");
//修改属性值
XmlHelper.Update(xml, \"/Root/Studio/Site[@Name=\'谱天城工作室\']\", \"Url\", \"http://www.putiancheng.net/\");
XmlHelper.Update(xml, \"/Root/Studio/Site[@Name=\'谱天城工作室\']\", \"Name\", \"PuTianCheng Studio\");
//读取元素值
Response.Write(\"<div>\" + XmlHelper.Read(xml, \"/Root/Studio/Site/Master\", \"\") + \"</div>\");
//读取属性值
Response.Write(\"<div>\" + XmlHelper.Read(xml, \"/Root/Studio/Site\", \"Url\") + \"</div>\");
//读取特定属性值
Response.Write(\"<div>\" + XmlHelper.Read(xml, \"/Root/Studio/Site[@Name=\'丁香鱼工作室\']\", \"Url\") + \"</div>\");
//删除属性
XmlHelper.Delete(xml, \"/Root/Studio/Site[@Name=\'小路工作室\']\", \"Url\");
//删除元素
XmlHelper.Delete(xml, \"/Root/Studio\", \"\");

希望本文所述对大家的C#程序设计有所帮助。

本文地址:https://www.stayed.cn/item/7615

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。