.net对于Xml的常规操作

对于直接创建一个xml文件这个,直接略过。假设xml的初始内容如下面:

<?xml version="1.0"?>
<Conf>
</Conf>

哪,根节点是Conf。

添加节点

public static bool AddConfig(CommonConfig conf)
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(ConfigPath);
                XmlElement root = doc.DocumentElement;
                XmlElement body = doc.CreateElement("Config");

                XmlElement CommonContent = doc.CreateElement("CommonContent");
                CommonContent.InnerText = conf.CommonContent;
                XmlElement CommonPriority = doc.CreateElement("CommonPriority");
                CommonPriority.InnerText = conf.CommonPriority.ToString();

                body.AppendChild(CommonContent);
                body.AppendChild(CommonPriority);

                XmlAttribute Attr = doc.CreateAttribute("CommonName");
                Attr.InnerText = conf.CommonName;
                body.Attributes.Append(Attr);

                root.AppendChild(body);

                doc.Save(ConfigPath);
                return true;
            }
            catch (Exception ex)
            {
                LogMsg.WriteLog("通用配置添加配置信息异常:" + ex.ToString());
                return false;
            }
        }
        #endregion

编辑节点

public static bool ModifyConfig(CommonConfig conf)
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(ConfigPath);
                XmlElement root = doc.DocumentElement;

                XmlNode CommonContentNode = root.SelectSingleNode("/Conf/Config[@CommonName=‘" + conf.CommonName + "‘]/CommonContent");
                CommonContentNode.InnerText = conf.CommonContent;

                //因为是用属性CommonName来确定节点的,所以将修改的操作放在最后,否则对于子节点将获取不到
                XmlNode confNode = root.SelectSingleNode("/Conf/Config[@CommonName=‘" + conf.CommonName + "‘]");
                confNode.Attributes["CommonName"].Value = conf.NewCommonName;

                doc.Save(ConfigPath);
                return true;
            }
            catch (Exception ex)
            {
                LogMsg.WriteLog("通用配置修改配置信息异常:" + ex.ToString());
                return false;
            }
        }

获取所有节点

public static List<CommonConfig> GetAllConfig()
        {
            List<CommonConfig> ListConf = new List<CommonConfig>();
            string CacheKey = "CommonConfig_Cache";
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            if (objCache[CacheKey] == null)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(ConfigPath);
                XmlElement root = doc.DocumentElement;
                XmlNodeList nodeList=root.ChildNodes;
                foreach (XmlNode curNode in nodeList)
                {
                    CommonConfig conf = new CommonConfig();
                    conf.CommonName = curNode.Attributes["CommonName"].Value;
                    XmlNode contentNode=curNode.SelectSingleNode("CommonContent");
                    conf.CommonContent = contentNode.InnerText;
                    XmlNode PriorityNode = curNode.SelectSingleNode("CommonPriority");
                    conf.CommonPriority = Convert.ToInt32(PriorityNode.InnerText);
                    ListConf.Add(conf);
                }

                System.Web.Caching.CacheDependency dep = new System.Web.Caching.CacheDependency(ConfigPath);
                DataCache.SetCache(CacheKey, ListConf, dep);

                return ListConf;
            }
            else
            {
                return objCache[CacheKey] as List<CommonConfig>;
            }
        }

最终的结果是这样的:

<?xml version="1.0"?>
<Conf>
  <Config CommonName="网站Logo">
    <CommonContent>网站Logo</CommonContent>
    <CommonPriority>1</CommonPriority>
  </Config>
</Conf>

上面需要使用XPath语法,我也记不住,所以放一个链接在这里,以后用到就去看看就行了。

可能以后还要添加一些对Xml的操作,未完待续……

时间: 2024-10-12 19:58:46

.net对于Xml的常规操作的相关文章

征服 Redis + Jedis + Spring (一)—— 配置&amp;常规操作(GET SET DEL)

有日子没写博客了,真的是忙得要疯掉. 完成项目基础架构搭建工作,解决了核心技术问题,接着需要快速的调研下基于Spring框架下的Redis操作. 相关链接: 征服 Redis 征服 Redis + Jedis 征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL) 征服 Redis + Jedis + Spring (二)—— 哈希表操作(HMGET HMSET) 征服 Redis + Jedis + Spring (三)—— 列表操作 前文有述

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

Apache服务器常规操作

导读 Apache是世界上排名第一的Web服务器,50%以上的Web服务器都在使用Apache,它几乎可以在所有计算机平台上运行.下面就由我给大家说说Apache服务器的一些常规操作. Apache服务器的安装 一般情况下,Apache随Linux系统一起安装.安装时,选择Web Server组件,即可在系统中安装Apache.用户的工作主要是配置服务器. 检查系统中是否已经安装Apache 在Red Hat Linux下,用户可以执行以下命令查看系统中是否存在Apache及其版本: [[ema

c# xml文档操作

原文链接 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.HtmlControl

(轉載)sql server xml字段的操作

原文轉自:http://blog.csdn.net/hliq5399/article/details/8315373 今天用到sql server 的xml字段,首先这个项目中的xml字段都存为了ntext字段,所以第一个操作 ntext 转化为 xml 以下摘自 http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/09/18/sql2005-nvarchar-to-xml.aspx XmlString是一個NText欄位,裡面放

GIT 的常规操作

GIT 的常规操作 常规操作也是我自己平时常用的几个命令, 学自于 pro git 这本书中 git 配置文件 git的配置文件位置 针对所有用户:/etc/gitconfig 针对当前用户: -/.gitconfig 查看配置的方法 git config --list 修改配置的方法 git config --global user.name "wangyubin" (修改的是-/.gitconfig) git config --system user.name "wang

dom4j解析XML的CURD操作

在开发JavaWeb项目中通常是利用XML配置文件来提高应用程序的访问效率,而在配置XML的同时,更多时候是对XML进行解析. 一.解析XML配置文件有两种机制: DOM和SAX的机制: DOM是将整个XML文件读到内容,形成一个倒状的树形结构. SAX是一个一个的将XML文件中的元素加载的内存,不会形成一个倒状的树形结构. 常用dom4j的api: 主要使用到SAXReader类 SAXReader:表示DOM4J解析器 saxReader.read():加载需要解析的xml文件,返回docu

(转)SQL对Xml字段的操作

T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中. 随着SQL Server 对XM

SQL对Xml字段的操作

原文:SQL对Xml字段的操作 T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中.