• 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", "");
  • 相关阅读:
    property 中的strong 与weak
    ios5 StoryBoard
    PLINQ中的分区
    ZOJ3704 I am Nexus Master! 模拟
    POJ1470 Closest Common Ancestors TarjanLCA
    XTU1170 Coin 线段树
    HDU2586 How far away ? LCATarjan Or spfa
    CF#303C Minimum Modular 数学分析
    CF#303B Rectangle Puzzle II 数学分析
    ZOJ3698 Carrot Fantasy 恶心模拟
  • 原文地址:https://www.cnblogs.com/ShenJH/p/2232283.html
Copyright © 2020-2023  润新知