Realm_King 之 .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>
/// <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;
}
}
}
好了不多说了,如果有bug出现希望大家多多指点....
转载于:https://www.cnblogs.com/RealmKing/p/3414329.html
Realm_King 之 .NET操作XML完整类相关推荐
- C#操作xml完整类文件
C#操作xml完整类文件 xml_oper.cs using ...System; using System.Data; using System.Web; using System.Xml; /** ...
- .net操作xml小结 (转)
.net操作xml小结 一.简单介绍 using System.Xml; //初始化一个xml实例 XmlDocument xml=new XmlDocument(); //导入指定xml文件 xml ...
- xml编辑 html_【c# .net】Xml读写操作(XmlTextReader 类)
Xml读写操作(XmlTextReader 类) 1.XML简介 1)XML 和 HTML 的设计初衷 XML 被设计用来传输和存储数据 HTML 被设计用来显示数据 2)什么是 XML? XML 指 ...
- android xml文件操作类,android操作xml
android操作xml封装后的类,包括创建xml和读xml. public class XmlParserUtil { //创建xml文件 public static void createXmlF ...
- 写了一个操作XML文件的类
一个操作XML文件的类..部份功能在完善中~~~~ using System; using System.Collections.Generic; using System.Text; using S ...
- MSXML操作XML的完整例子
许多新手对MSXML如何操作XML不太了解.我下面把一些常用的操作整理成一个例子,供大家参考. 假设XML文件名:test.xml <?xml version="1.0" e ...
- 使用Dom4j操作XML数据
--------------siwuxie095 dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 XML 数据 特点:性能优异.功能强大.极端易用 dom ...
- java操作XML文件--读取内容
先把问题贴出来:编写一个可以解析xml及修改xml内容的工具类 由于我以前做过Android应用程序开发,之前也解析过xml文件,所以,这道题不是很难,这篇文章我先解决第一个问 ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
最新文章
- 浅谈ASP.NET中render方法
- k8s的list-watch机制和 pod调度约束
- 查看JupyterNotebook的kernel及存放位置
- win32汇编寄存器汇总
- WinCE EBOOT中的BootPart分析
- java黄金连分数_蓝桥杯 | Java B组省赛真题练习——黄金连分数-Go语言中文社区...
- php判断一个字符串是否为纯数字,php判断变量是否为纯数字字符串的方法
- 三星年度旗舰S20要来了:潜望式长焦加一亿像素!
- 如何反编译.apk(注:CSDN上提供的资源过时了,都用不了)
- 页面载入时在导航栏显示背景图片
- 理解Android安全机制
- 苹果自带的清理软件_苹果电脑清理软件哪个好|电脑|苹果电脑|mac|旧文件
- CSS行内样式内部样式外部样式
- Hadoop2.7.1+Hbase1.2.1集群环境搭建(3)1.x和2.x都支持的集群安装方式
- HDU 5058	 So easy (set容器大法好)
- cpufreq 频率设置verify
- 怎么区分css还是html5,一文读懂HTML5和HTML4区别!
- 2014ACM/ICPC亚洲区域赛牡丹江现场赛总结
- bash报错syntax error near unexpected token `$‘\r‘‘解决方法
- Altium designer 备注手册
热门文章
- zuul两大作用_SpringCloud微服务(05):Zuul组件,实现路由网关控制
- php的方向,PHP面试方向
- 同源策略禁止读取位于_用浏览器缓存绕过同源策略(SOP)限制
- android约束布局中 链,Android-ConstraintLayout(约束布局)-Chains链(链条布局,Nice)
- java ee 6 sdk中文版,Java EE 6 SDK+Eclipse JEE+Android ADT-Fun言
- python跟易语言那个写辅助_易语言写练练看辅助
- php 面试mysql,mysql中优化必读
- C指针8:二级指针(意思就是指向指针的指针)
- 力扣(LeetCode)刷题,简单+中等题(第30期)
- 单目深度估计与伪雷达点云、可视化