asp.net xml 增删改操作
user.xml
<?xml version="1.0" encoding="utf-8"?>
<user>
<person>
</person>
<person name="风拉" sex="男" age="">
<pass></pass>
<Address>大明</Address>
</person>
<person name="风云" sex="女" age="">
<pass></pass>
</person>
<person name="云" sex="女" age="">
<pass></pass>
<Address>松江区</Address>
</person>
</user> , private XmlDocument xmlDoc; //添加
private void InsertElement()
{ XmlNode xmldocselect = xmlDoc.SelectSingleNode("user");
XmlElement el = xmlDoc.CreateElement("person");
el.SetAttribute("name", "风云");
el.SetAttribute("sex", "女");
el.SetAttribute("age", "");
XmlElement xesub1 = xmlDoc.CreateElement("pass");
xesub1.InnerText = "";
el.AppendChild(xesub1);
xmldocselect.AppendChild(el);
XmlElement xx = xmlDoc.CreateElement("Address");
xx.InnerText = "松江区";
el.AppendChild(xx);
xmlDoc.Save(Server.MapPath("user.xml"));
}
//修改
private void UpdateElement()
{
LoadXml();
XmlNodeList nodeList = xmlDoc.SelectSingleNode("user").ChildNodes;
foreach (var item in nodeList)
{
XmlElement xe = (XmlElement)item;
if (xe.GetAttribute("name") == "风云")
{
xe.SetAttribute("name", "发明"); //如果下面有子节点在下走
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "pass")//如果找到
{
xe2.InnerText = "";//则修改
break; }
} break;
}
}
xmlDoc.Save(Server.MapPath("user.xml"));//保存 } //删除
private void DeleteElement()
{
LoadXml();
XmlNodeList nodeList = xmlDoc.SelectSingleNode("user").ChildNodes;
foreach (var item in nodeList)
{
XmlElement xe = (XmlElement)item;
if (xe.GetAttribute("name") == "发明")
{
xe.RemoveAll(); ////如果下面有子节点在下走
//XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
//foreach (XmlNode xn1 in nls)//遍历
//{
// XmlElement xe2 = (XmlElement)xn1;//转换类型
// if (xe2.Name == "pass")//如果找到
// {
// xe2.InnerText = "66666";//则修改
// break; // }
//} break;
}
}
xmlDoc.Save(Server.MapPath("user.xml"));//保存 } //显示
private void showIt()
{
LoadXml();
XmlNode xn = xmlDoc.SelectSingleNode("user");
XmlNodeList xnl = xn.ChildNodes;
foreach (var item in xnl)
{
XmlElement xe=(XmlElement)item;
Response.Write(xe.GetAttribute("name"));
}
}
//查找xml
private void LoadXml()
{
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("User.xml"));
} adminFunction.xml <?xml version="1.0" encoding="utf-8" ?>
<functions>
<function name="商品发布" url="~/page/leaves/leave.aspx">
<subfunction name="添加商品" url="~/page/leaves/leave.aspx">
</subfunction>
<subfunction name="添加商品" url="~/page/leaves/leave.aspx">
</subfunction>
</function>
<function name="留言发布" url="~/page/leaves/leave.aspx">
<subfunction name="添加留言" url="~/page/leaves/leave.aspx">
</subfunction>
<subfunction name="修改留言" url="~/page/leaves/leave.aspx">
</subfunction>
</function>
</functions> private void InitFunctions()
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("adminFunction.xml"));
XmlNode root = xmldoc.DocumentElement;
tvFunction.Nodes.Add(CreateNode(root,new TreeNode()));
} //递归
/// <summary>
///
/// </summary>
/// <param name="node">根节点</param>
/// <param name="tn">根节点对应的树节点</param>
/// <returns></returns>
private TreeNode CreateNode(XmlNode root, TreeNode tn)
{ foreach (XmlNode node in root.ChildNodes)
{
XmlElement subxmlEmt = node as XmlElement;
string subname = subxmlEmt.GetAttribute("name");
string suburl = subxmlEmt.GetAttribute("url");
TreeNode subtn = new TreeNode();
subtn.Text = subname;
subtn.NavigateUrl = suburl;
if (node.HasChildNodes)
{
subtn.ChildNodes.Add(CreateNode(node, subtn));
}
tn.ChildNodes.Add(subtn);
}
return tn; } //读实例
private void ReadEx()
{
string path1 = Server.MapPath("TextFile.txt");
if (File.Exists(path1))
{
StreamReader reader = new StreamReader(path1, System.Text.Encoding.GetEncoding("gb2312")); string str = reader.ReadToEnd();
Response.Write((str));
reader.Close();
} WriteFile(path1,"vvvvv");
}
//写文件
/// </summary>
/// <param name="Path">文件路径</param>
/// <param name="Strings">文件内容</param>
public static void WriteFile(string Path, string Strings)
{ if (!System.IO.File.Exists(Path))
{
System.IO.FileStream f = System.IO.File.Create(Path);
f.Close();
}
System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, false, System.Text.Encoding.GetEncoding("gb2312"));
f2.Write(Strings);
f2.Close();
f2.Dispose();
}
asp.net xml 增删改操作的更多相关文章
- 使用python操作XML增删改查
使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
ASP.NET MVC深入浅出(被替换) 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...
- OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...
- .NET下对Web.config与App.Config的增删改操作的代码
把代码过程常用的内容做个收藏,下边代码段是关于 .NET下对Web.config与App.Config的增删改操作的代码. <?xml version="1.0" encod ...
- Linq to SQL 简单的增删改操作
Linq to SQL 简单的增删改操作. 新建数据库表tbGuestBook.结构如下: 新建web项目,完成相应的dbml文件.留言页面布局如下 <body> <form id= ...
- C# winform窗体设计-对数据库执行增删改操作
对于学习数据库的人来说,数据库的增删改可谓是最基本的了(小编其实也只是一个小白=-=),这篇文章,小编将于大家讲解数据库增删改操作 在执行数据库增删改的时候主要使用的:Command 类 ...
- Jquery easyui开启行编辑模式增删改操作
Jquery easyui开启行编辑模式增删改操作 Jquery easyui开启行编辑模式增删改操作先上图 Html代码: <table id="dd"> </ ...
- [转]Jquery easyui开启行编辑模式增删改操作
本文转自:http://www.cnblogs.com/nyzhai/archive/2013/05/14/3077152.html Jquery easyui开启行编辑模式增删改操作先上图 Html ...
- [ruby on rails] 跟我学之(3)基于rails console的查增删改操作
本章节展开对model的介绍:包括查增删改操作.紧接着上面一节<[ruby on rails] 跟我学之HelloWorld> 创建模型 使用命令创建模型 创建表post,默认自带两栏位 ...
随机推荐
- 来个linq to js
说这个话题之前,我们来讲一下C#的linq 语法.在C#里面我们会对列表进行操作,如OrderBy(p=>p.property),Where(p=>p.property==..) 括号里 ...
- RabbitMQ官方中文入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)
发布/订阅 在上篇教程中,我们搭建了一个工作队列.每个任务之分发给一个工作者(worker).在本篇教程中,我们要做的之前完全不一样——分发一个消息给多个消费者(consumers).这种模式被称为“ ...
- 关于cmd下使用taskkill无法终止进程名包含空格的进程的解决方案
在我们使用taskkill命令终止进程时,有时会遇到无法终止含空格的进程的问题.只要在进程名外部加上双引号即可解决此问题. 如图所示: 附上taskkill命令的语法及相关说明: TASKKILL [ ...
- android开发------初识Activity
之前我们简单说过,Activity实际上是一个窗体,用来存放我们的程序外观. 我们先来创建一个空的Activity,不加载任何layout.要做的是,定义自己的类,继承android的Activity ...
- python基础-range用法_python2.x和3.x的区别
#range帮助创建连续的数字,通过设置步长来指定不连续 python2.7 #直接就在内存中创建出来(0-99) >>> range(100)[0, 1, 2, 3, 4, 5, ...
- Day Seven(Beta)
站立式会议 站立式会议内容总结 331 今天: 1)阅读html 5+文档 未来走h5路线 2)restful,未来开发接口 3)h5+demo运行 4)get 代码:a||(a=as); 5)js ...
- 【POJ 1151】Atlantis
离散化后扫描线扫一遍. 夏令营时gty学长就讲过扫描线,可惜当时too naive,知道现在才写出模板题. 当时也不会线段树啊233 #include<cstdio> #include&l ...
- CNN中的BN
w权值的初始化,之前最好的方法是 也就是输入神经元和输出神经元中随机一个数,然后除以输入神经元的个数开根号 因为全连接层波动较大,所以加在FC后面 这里Y,b是为了对信息的一个还原
- Maven2-profile多环境配置
使用maven管理项目有一个好处是就是可以针对不同的环境使用不同的编译打包设置,方便了多环境下的打包部署,一般我们开发项目都会有至少开发环境和正式环境两个,针对这两个环境的配置信息也会有所不同,比如数 ...
- js学习笔记1---使用方法
1.获取对象: a) 通过名称来获取元素:document.getElementById() //属于静态方法,方法前面只能用document b) document.getElementsByCla ...