zoukankan      html  css  js  c++  java
  • C#:XML操作类

    XMLHelper.cs
    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 { }
    }
    }
    }
    XMLHelperDEMO
    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", "");
  • 相关阅读:
    Security headers quick reference Learn more about headers that can keep your site safe and quickly look up the most important details.
    Missing dollar riddle
    Where Did the Other Dollar Go, Jeff?
    proteus 与 keil 联调
    cisco router nat
    router dhcp and dns listen
    配置802.1x在交换机的端口验证设置
    ASAv931安装&初始化及ASDM管理
    S5700与Cisco ACS做802.1x认证
    playwright
  • 原文地址:https://www.cnblogs.com/ShenJH/p/2232283.html
Copyright © 2011-2022 走看看