.NET操作XML完整类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Web;

namespace BLL
{
    public  class XmlDoc
    {
        /// <summary>
        /// 创建Xml文件
        /// </summary>
        /// <param name="xmlPath">创建文件路径</param>
        /// <param name="element"></param>
        public void CreateXmlNode(string xmlPath, string element)
        {
            //实例化Xml文档类
            XmlTextWriter xmlTextWriter = new XmlTextWriter(xmlPath, Encoding.UTF8);
            //创建Xml声明
            xmlTextWriter.WriteStartDocument();
            xmlTextWriter.WriteStartElement(element);
            xmlTextWriter.Flush();
            xmlTextWriter.Close();
        }

        /// <summary>
        /// 新增Xml节点
        /// </summary>
        /// <param name="xmlPath">文件路径</param>
        /// <param name="singleNode"></param>
        /// <param name="node"></param>
        public void AddXmlElement(string xmlPath, string singleNode, XmlNode node)
        {
            //实例化Xml文档类
            XmlDocument xmlDocument = new XmlDocument();
            //加载Xml文件
            xmlDocument.Load(xmlPath);
            xmlDocument.SelectSingleNode(singleNode).AppendChild(node);
            xmlDocument.Save(xmlPath);
        }

        /// <summary>
        /// 新增Xml节点
        /// </summary>
        /// <param name="xmlPath"></param>
        /// <param name="singleNode"></param>
        /// <param name="node"></param>
        public void AddXmlElement(string xmlPath, string singleNode, string element, string attribute, string value)
        {
            //实例化Xml文档类
            XmlDocument xmlDocument = new XmlDocument();
            //加载Xml文件
            xmlDocument.Load(xmlPath);
            XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode);
            XmlElement xmlElement = xmlDocument.CreateElement(element); ;
            xmlElement.SetAttribute(attribute, value);
            xmlDocument.Save(xmlPath);
        }

        /// <summary>
        /// 读取XML文件的XmlDocument
        /// </summary>
        /// <param name="xmlPath">Xml文件路径</param>
        /// <returns></returns>
        public XmlDocument GetXmlDocument(string xmlPath)
        {
            try
            {
                //实例化Xml文档类
                XmlDocument xmlDocument = new XmlDocument();
                //加载Xml文件
                xmlDocument.Load(GetMapPath(xmlPath));
                return xmlDocument;
            }
            catch (System.Xml.XmlException exp)
            {
                throw exp;
            }
            catch (System.IO.IOException exp)
            {
                throw exp;
            }
            catch (ArgumentNullException exp)
            {
                throw exp;
            }
            catch (ArgumentException exp)
            {
                throw exp;
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }

        /// <summary>
        /// 读取XML文件的XmlNode
        /// </summary>
        /// <param name="xmlPath">Xml文件路径</param>
        /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param>
        /// <returns></returns>
        public XmlNode GetXmlNode(string xmlPath, string singleNode)
        {
            try
            {
                //实例化Xml文档类
                XmlDocument xmlDocument = new XmlDocument();
                //加载Xml文件
                xmlDocument.Load(GetMapPath(xmlPath));
                //获取文件内容
                return xmlDocument.SelectSingleNode(singleNode);
            }
            catch (System.Xml.XPath.XPathException exp)
            {
                throw exp;
            }
            catch (System.Xml.XmlException exp)
            {
                throw exp;
            }
            catch (System.IO.IOException exp)
            {
                throw exp;
            }
            catch (ArgumentNullException exp)
            {
                throw exp;
            }
            catch (ArgumentException exp)
            {
                throw exp;
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }

        /// <summary>
        /// 读取XML文件的XmlElement
        /// </summary>
        /// <param name="xmlPath">Xml文件路径</param>
        /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param>
        /// <param name="xmlNodeString">节点名称</param>
        /// <returns></returns>
        public XmlElement GetXmlElement(string xmlPath, string singleNode, string xmlNodeString)
        {
            try
            {
                //实例化Xml文档类
                XmlDocument xmlDocument = new XmlDocument();
                //加载Xml文件
                xmlDocument.Load(GetMapPath(xmlPath));
                //获取文件内容
                XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode);
                //提取节点名称下的属性值
                return xmlNode[xmlNodeString];
            }
            catch (System.Xml.XPath.XPathException exp)
            {
                throw exp;
            }
            catch (System.Xml.XmlException exp)
            {
                throw exp;
            }
            catch (System.IO.IOException exp)
            {
                throw exp;
            }
            catch (ArgumentNullException exp)
            {
                throw exp;
            }
            catch (ArgumentException exp)
            {
                throw exp;
            }
            catch (Exception exp)
            {
                throw exp;
            }

        }

        /// <summary>
        /// 读取XML文件的节点属性
        /// </summary>
        /// <param name="xmlPath">Xml文件路径</param>
        /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param>
		///查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/
        /// <param name="xmlNodeString">节点名称</param>
        /// <param name="variables">节点属性</param>
        /// <returns></returns>
        public string GetAttribute(string xmlPath, string singleNode, string xmlNodeString, string variables)
        {
            try
            {
                //实例化Xml文档类
                XmlDocument xmlDocument = new XmlDocument();
                //加载Xml文件
                xmlDocument.Load(GetMapPath(xmlPath));
                //获取文件内容
                XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode);
                //提取节点名称下的属性值
                return xmlNode[xmlNodeString].GetAttribute(variables);
            }
            catch (System.Xml.XPath.XPathException exp)
            {
                throw exp;
            }
            catch (System.Xml.XmlException exp)
            {
                throw exp;
            }
            catch (System.IO.IOException exp)
            {
                throw exp;
            }
            catch (ArgumentNullException exp)
            {
                throw exp;
            }
            catch (ArgumentException exp)
            {
                throw exp;
            }
            catch (Exception exp)
            {
                throw exp;
            }

        }

        /// <summary>
        /// 设置XML节点
        /// </summary>
        /// <param name="xmlNodeString">节点名称</param>
        /// <param name="value">节点值</param>
        /// <param name="discrption">节点说明</param>
        public void SetAttribute(string xmlPath, string singleNode, string xmlNodeString, string attribute, string value, string description)
        {
            try
            {
                XmlDocument xmlDocument = new XmlDocument();

                xmlDocument.Load(GetMapPath(xmlPath));
                //获取文件内容
                XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode);
                //设置指定XML节点Value值
                xmlNode[xmlNodeString].SetAttribute(attribute, value);
                xmlNode[xmlNodeString].SetAttribute("Description", description);
                //将设置后的XML节点保存
                xmlDocument.Save(GetMapPath(xmlPath));
            }
            catch (Exception exp)
            {
                throw new Exception(exp.Message);
            }
        }

        /// <summary>
        /// 设置XML节点
        /// </summary>
        /// <param name="xmlPath">XML文件路径</param>
        /// <param name="singleNode">选择匹配XPath表达式的第一个XmlNode</param>
        /// <param name="xmlNodeString">指定节点</param>
        /// <param name="attribute">属性数组</param>
        /// <param name="value">值数组</param>
        public void SetAttribute(string xmlPath, string singleNode, string xmlNodeString, string[] attribute, string[] value)
        {
            try
            {
                XmlDocument xmlDocument = new XmlDocument();

                xmlDocument.Load(GetMapPath(xmlPath));
                //获取文件内容
                XmlNode xmlNode = xmlDocument.SelectSingleNode(singleNode);
                for (int i = 0; i < attribute.Length; i++)
                {
                    //设置指定XML节点Value值
                    xmlNode[xmlNodeString].SetAttribute(attribute[i], value[i]);
                }
                //将设置后的XML节点保存
                xmlDocument.Save(xmlPath);
            }
            catch (Exception exp)
            {
                throw new Exception(exp.Message);
            }
        }

        /// <summary>
        /// 通过XML名称获取XML物理路径,可无限添加,前提是XML都位于同一网站目录下
        /// </summary>
        /// <param name="xmlName"></param>
        /// <returns></returns>
        private string GetMapPath(string xmlName)
        {
            switch (xmlName)
            {
                case "GlobalVariables.xml":
                    xmlName = HttpContext.Current.Server.MapPath("~/XML/") + xmlName;
                    break;
                default:
                    break;
            }
            return xmlName;
        }
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, 文件
, 节点
, xmldocument
, exp
,  XmlDocument
XML操作类
c对xml完整操作、.net xml操作类、asp.net xml操作、vb.net xml操作、.net 操作xml,以便于您获取更多的相关知识。

时间: 2024-09-14 13:42:22

.NET操作XML完整类的相关文章

一个通过DataSet操作XML的类(原创)

xml|原创 这段时间写的项目每次都要用到XML保存一些配置,而每次操作XML都觉得挺麻烦,没有数据库那么顺手.后来发现用DataSet操作XML很方便,而且灵活性比较好,于是写了一个操作XML的类,用来应付一般的XML操作(源码下载附件). 1 基本思路 其实用DataSet操作XML,归根到底就是对DataSet里的表格,行,列等进行操作,然后用DataSet里的东西重新写到XML中,从而实现编辑XML的目的.如果再配合上.xsd文件的话,那效果更佳. 2 程序详解 (1) XML文件内容

一个通过DataSet操作XML的类

xml 这段时间写的项目每次都要用到XML保存一些配置,而每次操作XML都觉得挺麻烦,没有数据库那么顺手.后来发现用DataSet操作XML很方便,而且灵活性比较好,于是写了一个操作XML的类,用来应付一般的XML操作(源码下载附件). 1 基本思路 其实用DataSet操作XML,归根到底就是对DataSet里的表格,行,列等进行操作,然后用DataSet里的东西重新写到XML中,从而实现编辑XML的目的.如果再配合上.xsd文件的话,那效果更佳. 2 程序详解 (1) XML文件内容 本类操

操作xml的类

<%'' Site validator 1.0.0'' Very simple concept, run this script on your server, it records the file details to an'' XML file which you download and store. Then, when you come back to make changes you can'' run the XML file back through this script a

XmlUtils JS操作XML工具类_javascript技巧

demo用了点extjs的东西,主要是为了打印json数组出来. js code(XmlUtils.js): 复制代码 代码如下: /**/ function XmlUtils (config) { /*定义私有属性*/ this.isIE = !!(window.attachEvent && !window.opera); this.init(); if(config) { this.dataType = config.dataType == 'json' ? 'json' : 'arr

c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)

xml 我用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程. 已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1.插入节点 往节点中插入一个节点:  XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("bookstore.xml"); XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找 XmlEleme

asp操作xml

ASP操作XML的类的说明: 可以完成ASP对XML节点的添加.删除.修改.清空. 进行上述操作,根据条件,操作类型包括:仅对第一个符合条件.及全部符合条件二种. 如: '将第一条件值替换成新值 'call xml.r_node("/blog/sorts/sort[id='2']/name","分lei2") '将全部条件值替换成新值 'call xml.r_nodes("/blog/sorts/sort[id='2']/name","

利用Visual Basic操作XML数据

visual|xml|数据 什么是XML 扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用. XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引.排序.查找.相关一致性等,XML仅仅是展示数据.事实上XML与其他数据表现形式最大的不同是:他极其简单.这是一个看上去有点琐细的优点,但正是

利用VisualBasic操作XML数据

visual|xml|数据 什么是XML 扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用. XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引.排序.查找.相关一致性等,XML仅仅是展示数据.事实上XML与其他数据表现形式最大的不同是:他极其简单.这是一个看上去有点琐细的优点,但正是

Dreamweaver8新功能:建立XSLT页可视化操作XML数据

dreamweaver|dreamweaver8|xml|数据 开言DW8这个新的功能究竟好在哪里?这不得不先说了一些令初学者感到犯晕的多个技术名词.但注意:本文主要是进行例题的过程说明,您可以按照步骤很轻松地完成本案项目.不过终究会在操作进行时会遇到一些概念,这里先预介绍,内容只做概要,相关具体内容可搜索参考详细.先说XML这是什么?越来越多的站点开始应用了XML,最常见的就是各个BLOG中存在RSS.SO,现在出现了两个技术名词:XML和RSS.· 请大家多动手,多看多观察如下几个站点的RS