代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.Net
】
常用的XML读写
作者:
Dezai.CN
/ 发布于
2013/7/30
/
698
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.Collections; //引用命名空间 using System.Xml; namespace xmlOp { /// <summary> /// XmlOp类提供对XML数据库的读写 /// </summary> public class XmlOp { //声明一个XmlDocument空对象 protected XmlDocument XmlDoc = new XmlDocument(); /// <summary> /// 构造函数,导入Xml文件 /// </summary> /// <param name="xmlFile">文件虚拟路径</param> public XmlOp(string xmlFile) { try { XmlDoc.Load(GetXmlFilePath(xmlFile)); //载入Xml文档 } catch (System.Exception ex) { throw ex; } } /// <summary> /// 析构函数 /// </summary> ~XmlOp() { XmlDoc = null; //释放XmlDocument对象 } /// <summary> /// 保存文件 /// </summary> /// <param name="filePath">文件虚拟路径</param> public void Save(string filePath) { try { XmlDoc.Save(GetXmlFilePath(filePath)); } catch (System.Exception ex) { throw ex; } } /// <summary> /// 返回Xml文件实际路径 /// </summary> /// <param name="xmlFile">文件虚拟路径</param> /// <returns></returns> public string GetXmlFilePath(string xmlFile) { return HttpContext.Current.Server.MapPath(xmlFile); } /// <summary> /// 根据Xml文件的节点路径,返回一个DataSet数据集 /// </summary> /// <param name="XmlPathNode">Xml文件的某个节点</param> /// <returns></returns> public DataSet GetDs(string XmlPathNode) { DataSet ds = new DataSet(); try { System.IO.StringReader read = new System.IO.StringReader(XmlDoc.SelectSingleNode(XmlPathNode).OuterXml); ds.ReadXml(read); //利用DataSet的ReadXml方法读取StringReader文件流 read.Close(); } catch { } return ds; } /// <summary> /// 属性查询,返回属性值 /// </summary> /// <param name="XmlPathNode">属性所在的节点</param> /// <param name="Attrib">属性</param> /// <returns></returns> public string SelectAttrib(string XmlPathNode, string Attrib) { string _strNode=""; try { _strNode = XmlDoc.SelectSingleNode(XmlPathNode).Attributes[Attrib].Value; } catch { } return _strNode; } /// <summary> /// 节点查询,返回节点值 /// </summary> /// <param name="XmlPathNode">节点的路径</param> /// <returns></returns> public string SelectNodeText(string XmlPathNode) { string _nodeTxt = XmlDoc.SelectSingleNode(XmlPathNode).InnerText; if (_nodeTxt == null || _nodeTxt == "") return ""; else return _nodeTxt; } /// <summary> /// 节点值查询判断 /// </summary> /// <param name="XmlPathNode">父节点</param> /// <param name="index">节点索引</param> /// <param name="NodeText">节点值</param> /// <returns></returns> public bool SelectNode(string XmlPathNode, int index, string NodeText) { try { XmlNodeList _NodeList = XmlDoc.SelectNodes(XmlPathNode); //循环遍历节点,查询是否存在该节点 for (int i = 0; i < _NodeList.Count; i++) { if (_NodeList[i].ChildNodes[index].InnerText == NodeText) { return true; break; } } } catch { } return false; } /// <summary> /// 获取子节点个数 /// </summary> /// <param name="XmlPathNode">父节点</param> /// <returns></returns> public int NodeCount(string XmlPathNode) { int i = 0; try { i=XmlDoc.SelectSingleNode(XmlPathNode).ChildNodes.Count; } catch { i=0; } return i; } /// <summary> /// 更新一个节点的内容 /// </summary> /// <param name="XmlPathNode">节点的路径</param> /// <param name="Content">新的节点值</param> /// <returns></returns> public bool UpdateNode(string XmlPathNode,string NodeContent) { try { XmlDoc.SelectSingleNode(XmlPathNode).InnerText = NodeContent; return true; } catch { return false; } } /// <summary> /// 更新N个节点值 /// </summary> /// <param name="XmlParentNode">父节点</param> /// <param name="XmlNode">子节点</param> /// <param name="NodeContent">子节点内容</param> /// <returns></returns> public bool UpdateNode(string XmlParentNode, string[] XmlNode, string[] NodeContent) { try { //根据节点数组循环修改节点值 for (int i = 0; i < XmlNode.Length; i++) { XmlDoc.SelectSingleNode(XmlParentNode+"/"+XmlNode[i]).InnerText = NodeContent[i]; } return true; } catch { return false; } } /// <summary> /// 修改属性 /// </summary> /// <param name="XmlPathNode">属性所在的节点</param> /// <param name="Attrib">属性名</param> /// <param name="Content">属性值</param> /// <returns></returns> public bool UpdateAttrib(string XmlPathNode, string Attrib,string AttribContent) { try { //修改属性值 XmlDoc.SelectSingleNode(XmlPathNode).Attributes[Attrib].Value = AttribContent; return true; } catch { return false; } } /// <summary> /// 添加属性 /// </summary> /// <param name="MainNode">属性所在节点</param> /// <param name="Attrib">属性名</param> /// <param name="AttribContent">属性值</param> /// <returns></returns> public bool InsertAttrib(string MainNode,string Attrib, string AttribContent) { try { XmlElement objNode = (XmlElement)XmlDoc.SelectSingleNode(MainNode); //强制转化成XmlElement对象 objNode.SetAttribute(Attrib, AttribContent); //XmlElement对象添加属性方法 return true; } catch { return false; } } /// <summary> /// 插入一个节点,带N个子节点 /// </summary> /// <param name="MainNode">插入节点的父节点</param> /// <param name="ChildNode">插入节点的元素名</param> /// <param name="Element">插入节点的子节点名数组</param> /// <param name="Content">插入节点的子节点内容数组</param> /// <returns></returns> public bool InsertNode(string MainNode, string ChildNode, string[] Element, string[] Content) { try { XmlNode objRootNode = XmlDoc.SelectSingleNode(MainNode); //声明XmlNode对象 XmlElement objChildNode = XmlDoc.CreateElement(ChildNode); //创建XmlElement对象 objRootNode.AppendChild(objChildNode); for (int i = 0; i < Element.Length; i++) //循环插入节点元素 { XmlElement objElement = XmlDoc.CreateElement(Element[i]); objElement.InnerText = Content[i]; objChildNode.AppendChild(objElement); } return true; } catch { return false; } } /// <summary> /// 删除一个节点 /// </summary> /// <param name="Node">要删除的节点</param> /// <returns></returns> public bool DeleteNode(string Node) { try { //XmlNode的RemoveChild方法来删除节点及其所有子节点 XmlDoc.SelectSingleNode(Node).ParentNode.RemoveChild(XmlDoc.SelectSingleNode(Node)); return true; } catch { return false; } } } }
试试其它关键字
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3