首页 > 编程 > C# > 正文

C#实现的XML操作类实例

2020-01-24 01:33:30
字体:
来源:转载
供稿:网友

本文实例讲述了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#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表