博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#对XML操作类
阅读量:5277 次
发布时间:2019-06-14

本文共 5380 字,大约阅读时间需要 17 分钟。

C#对XML操作类

该类包含了对XML文件的创建,添加,读取,删除,修改等操作

//#define isUnity#if isUnityusing UnityEngine;#endifusing System.Collections;using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Text;using System.IO;using System.Xml;using System.Xml.Linq;public class XMLoperate {#region 创建///实例路径fliepath: C:/Users/Administrator/AppData/LocalLow/DefaultCompany/Racingsimulator/test.xml///实例路径elePath:”/ABC/AAA”,/// /// 创建XML文件/// /// 文件路径/// 根元素/// 一级元素public static void CreateXML(string fliepath,string RootEle,string [] eles){XmlDocument doc = new XmlDocument();XmlDeclaration dec = doc.CreateXmlDeclaration(“1.0”, “utf-8”, null);doc.AppendChild(dec);//创建一个根节点(一级)XmlElement root = doc.CreateElement(RootEle);doc.AppendChild(root);//创建节点(二级)for (int i = 0; i < eles.Length; i++){XmlNode Nodel = doc.CreateElement(eles[i]);Nodel.InnerText = “”;root.AppendChild(Nodel);}doc.Save(fliepath);}/// /// 创建XML文件/// /// 文件路径/// 根元素/// 一级元素/// 一级元素的值public static void CreateXML(string fliepath, string RootEle, string[] eles,string [] elesvalue){ if (eles.Length == elesvalue.Length){XmlDocument doc = new XmlDocument();XmlDeclaration dec = doc.CreateXmlDeclaration(“1.0”, “utf-8”, null);doc.AppendChild(dec);//创建一个根节点(一级)XmlElement root = doc.CreateElement(RootEle);doc.AppendChild(root);//创建节点(二级)for (int i = 0; i < eles.Length; i++){XmlNode Nodel = doc.CreateElement(eles[i]);Nodel.InnerText = elesvalue[i];root.AppendChild(Nodel);}doc.Save(fliepath);}else {throw new Exception(“eles和elesvalue的长度不一致”);}}#endregion#region 添加/// /// 向XML指定元素内添加一组元素/// /// 文件路径/// 元素路径param>/// 元素public static void AddXmlElementsToOneElement(string fliepath,string elePath, string[] eles) {XmlDocument doc = new XmlDocument();doc.Load(fliepath);XmlElement root = doc.DocumentElement;XmlNodeList list = root.SelectNodes(elePath);for (int i = 0; i < list.Count; i++) {for (int j = 0; j < eles.Length; j++){XmlNode Nodel = doc.CreateElement(eles[j]);Nodel.InnerText = “”;list[i].AppendChild(Nodel);}}doc.Save(fliepath);}/// /// 向XML指定元素内添加一组元素/// /// 文件路径/// 元素路径param>/// 元素/// 元素值public static void AddXmlElementsToOneElement(string fliepath, string elePath, string[] eles, string[] elesvalue){XmlDocument doc = new XmlDocument();doc.Load(fliepath);XmlElement root = doc.DocumentElement;XmlNodeList list = root.SelectNodes(elePath);for (int i = 0; i < list.Count; i++){for (int j = 0; j < eles.Length; j++){XmlNode Nodel = doc.CreateElement(eles[j]);Nodel.InnerText = elesvalue[j];list[i].AppendChild(Nodel);}}doc.Save(fliepath);}#endregion#region 读取/// /// 从一个指定元素节点获取指定子元素的值/// /// 文件路径/// 元素路径param>/// 元素名称/// 
public static string [] ReadXmlElmentsFromOneElement(string fliepath, string elePath, string[] eles) {string[] redN = new string[eles.Length];XmlDocument doc = new XmlDocument();doc.Load(fliepath);XmlElement root = doc.DocumentElement;XmlNodeList list = root.SelectNodes(elePath);if (list.Count > 0){for (int j = 0; j < eles.Length; j++){redN[j] = list[0].SelectNodes(eles[j])[0].InnerText;}}return redN;}/// /// 从一个指定的元素节点获取相同路径下指定的节点/// /// 文件路径/// 元素路径/// 相同元素路径/// 元素名称///
public static List
ReadALLXmlElmentsFromOneElement(string fliepath, string elePath, string elePath2, string[] eles){List
redN = new List
();XmlDocument doc = new XmlDocument();doc.Load(fliepath);XmlElement root = doc.DocumentElement;XmlNodeList list = root.SelectNodes(elePath);if (list.Count > 0){XmlNodeList list1 = list[0].SelectNodes(elePath2);for (int i = 0; i < list1.Count; i++) {for (int j = 0; j < eles.Length; j++){string mk = list1[i].SelectNodes(eles[j])[0].InnerText;redN.Add(mk);}}}return redN;}#endregion#region 修改///
/// 修改某一路径下的所有eles中指定的元素值为elesvalue/// ///
文件路径///
元素路径///
元素名称///
元素值public static void ModifyXmlelments(string fliepath, string elePath, string[] eles, string[] elesvalue) {if (eles.Length == elesvalue.Length){XmlDocument doc = new XmlDocument();doc.Load(fliepath);XmlElement root = doc.DocumentElement;XmlNodeList list = root.SelectNodes(elePath);for (int i = 0; i < eles.Length; i++) {list[0].SelectNodes(eles[i])[0].InnerText =elesvalue [i];}doc.Save(fliepath);}else {throw new Exception(“eles和elesvalue的长度不一致”);}}#endregion#region 删除///
/// 删除指定路径下的所有指定元素/// ///
文件路径///
元素路径///
元素名称public static void DeleteXmlelemnts(string fliepath, string elePath, string[] eles) {XmlDocument doc = new XmlDocument();doc.Load(fliepath);XmlElement root = doc.DocumentElement;XmlNodeList list = root.SelectNodes(elePath);for (int i = 0; i < eles.Length; i++) {XmlNode mmk = list[0].SelectNodes(eles[i])[0];list[0].RemoveChild(mmk);}doc.Save(fliepath);}#endregion#if isUnity#region Resource文件夹读取///
/// 从一个指定元素节点获取指定子元素的值/// ///
文件路径///
元素路径param>///
元素名称///
public static string[] ResourceReadXmlElmentsFromOneElement(string fliepath, string elePath, string[] eles){string[] redN = new string[eles.Length];XmlDocument doc = new XmlDocument();doc.LoadXml(((TextAsset)Resources.Load(fliepath)).text);XmlElement root = doc.DocumentElement;XmlNodeList list = root.SelectNodes(elePath);if (list.Count > 0){for (int j = 0; j < eles.Length; j++){redN[j] = list[0].SelectNodes(eles[j])[0].InnerText;}}return redN;}#endregion#endif}

原文:

转载于:https://www.cnblogs.com/mathb/p/9900292.html

你可能感兴趣的文章
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>