使用C#对XML进行增删改查操作
xml文件格式
- <?xml version="1.0" encoding="utf-8"?>
- <messageList>
- <message id="1">
- <Name>熊猫</Name>
- <QQ>123456</QQ>
- <Email>panda@qq.com</Email>
- <Content>asfdsafasdfasdfsad我是内容</Content>
- <Time>2009-10-1</Time>
- </message>
- </messageList>
增加>>>>
- XmlDocument xmld = new XmlDocument();
- xmld.Load(Server.MapPath("App_Code/Message.xml"));//加载xml文件
- XmlNode root = xmld.SelectSingleNode("messageList");//查找messageList节点
- int i = xmld.SelectSingleNode("messageList").ChildNodes.Count + 1;
- XmlElement xml0 = xmld.CreateElement("message");
- xml0.SetAttribute("id", i.ToString());
- XmlElement xml1 = xmld.CreateElement("Name");//创建一个Name节点
- xml1.InnerText = this.txtName.Value.Trim();
- xml0.AppendChild(xml1);//添加
- XmlElement xml2 = xmld.CreateElement("QQ");//创建QQ节点
- xml2.InnerText = this.txtQQ.Value.Trim();
- xml0.AppendChild(xml2);//添加
- XmlElement xml3 = xmld.CreateElement("Email");//创建一个Email节点
- xml3.InnerText = this.txtEmail.Value.Trim();
- xml0.AppendChild(xml3);//添加
- XmlElement xml4 = xmld.CreateElement("Content");//创建一个Content节点
- xml4.InnerText = this.txtContent.Value;
- xml0.AppendChild(xml4);//添加
- XmlElement xml5 = xmld.CreateElement("Time");//创建一个Time节点
- xml5.InnerText = DateTime.Now.ToString("yyyy-MM-dd");
- xml0.AppendChild(xml5);//添加
- root.AppendChild(xml0);
- xmld.Save(Server.MapPath("App_Code/Message.xml"));
删除>>>>
- XmlDocument xmld = new XmlDocument();
- xmld.Load(Server.MapPath("App_Code/Message.xml"));
- XmlNodeList list = xmld.SelectSingleNode("messageList").ChildNodes;
- foreach (XmlNode var in list)
- {
- XmlElement xmle = (XmlElement)var;
- if (xmle.GetAttribute("id") == Id)//如果ID等于文本的值就删除
- {
- xmle.RemoveAll();
- xmld.Save(Server.MapPath("App_Code/Message.xml"));//删除后记得一定要保存
- Page.ClientScript.RegisterStartupScript(GetType(), "", "alert('删除成功!!');", true);
- }
- else
- {
- Page.ClientScript.RegisterStartupScript(GetType(), "", "alert('删除失败!!');", true);
- }
- }
更改>>>>
- XmlDocument xmld = new XmlDocument();
- xmld.Load(Server.MapPath("App_Code/Message.xml"));
- XmlNodeList list = xmld.SelectSingleNode("messageList").ChildNodes;
- foreach (XmlNode xmln in list)
- {
- XmlElement xmle = (XmlElement)xmln;//格式转换
- if (Request["ID"].Equals(xmle.GetAttribute("id")))
- {
- xmle.ChildNodes[0].InnerText = this.txtName.Value;
- xmle.ChildNodes[1].InnerText = this.txtQQ.Value;
- xmle.ChildNodes[2].InnerText = this.txtEmail.Value;
- xmle.ChildNodes[3].InnerText = this.txtContent.Value;
- xmld.Save(Server.MapPath("App_Code/Message.xml"));
- Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('修改成功!!!');location.href='MessageList.aspx'",true);
- }
- }
查询>>>>>
- //下面的代码开始是用页面编码的方式实现的
- XmlDocument xmld = new XmlDocument();//构建xml文档
- xmld.Load(Server.MapPath("App_Code/Message.xml"));//加载
- XmlNodeList list = xmld.SelectSingleNode("messageList").ChildNodes;//获取子节点
- if (list!=null)
- {
- foreach (XmlNode node in list)
- {
- XmlElement xmle = (XmlElement)node;//转换
- //这里到时候明天补上
来自:http://blog.csdn.net/zhoukang0916/article/details/4684210
使用C#对XML进行增删改查操作的更多相关文章
- c# xml的增删改查操作 xmlDocument 的用法
1.将xml转换为DataTable string path = "";//xml的位置StringReader sr = null;XmlTextReader xmlReader ...
- [转载]Oracle之xml的增删改查操作
tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数组取值的方式获取,但起始值从1开始 一.查询(Q ...
- Oracle之xml的增删改查操作
工作之余,总结一下xml操作的一些方法和心得! tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数 ...
- 对oracle里面clob字段里面xml的增删改查学习
这段时间,我使用系统表里面有clob字段里面存放的xml信息,我们如何对xml进行增删改查操作呢,自己参考了很多也学到很多,给大家分享一下 首先我们先建测试表 CREATE TABLE EFGP_23 ...
- java实现xml文件增删改查
java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...
- 用dom4j解析xml文件并执行增删改查操作
转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...
- VB&XML的增删改查
简介:XML的增删改查 开发过程中有许多后台操作XML的过程,每次需要操作时都是找很多代码来参考或者百度一下.今天决定补充下XML操作的知识,把XML操作的增删改查都写了一遍,供以后开发参考 查询: ...
- MyBatis批量增删改查操作
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...
- MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多
一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...
随机推荐
- 【计算机视觉】基于Kalman滤波器的进行物体的跟踪
预估器 我们希望能够最大限度地使用測量结果来预计移动物体的运动. 所以,多个測量的累积能够让我们检測出不受噪声影响的部分观測轨迹. 一个关键的附加要素即此移动物体运动的模型. 有了这个模型,我们不仅能 ...
- iOS学习9_事件分发&响应链
iOS的三种事件:触摸事件/运动事件/远程控制事件 typedef enum { UIEventTypeTouches, UIEventTypeMotion, UIEventTypeRemoteCon ...
- 菜鸟之webservice(一) 服务端搭建
首先说一下,为什么取名叫菜鸟之webservice,由于本人技术真的不咋滴,写博客仅仅是为了对所学知识的总结.webservice对于我来说一直都是高大上的感觉,一个java web和javase都没 ...
- IDEA中如何设置自动导包
IDEA跟eclipse还是有一些差别,一些东西要自己去设置,但同时也还是有快捷键的方式来帮助我们 1.如何设置自动导包:如下图所示 点击FIle--->settings 其次还可以通过按快捷键 ...
- 如何在IDEA中创建web项目并且部署到Tomcat中
步骤1:File->New Project, 步骤2:选择Project SDK为1.7 -> Next -> Finish(JDK)我自己的是1.7(这里的project,跟ecl ...
- vue7 下拉列表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Oracle 排序中 nulls first 与 nulls last 的用法
Nulls first和nulls last是Oracle Order by支持的语法 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 ...
- 清空/var/adm/wtmp 文件内容
清/var/adm/wtmp 文件内容 用于显示登录系统和重启机器的情况 /var/adm/wtmp文件过大. 可用du -sm /var/adm/wtmp查看 cat /dev/null>/v ...
- A start job is running for Network Manager wait online (29s / no limit) 等待30s解决办法
电脑安装openSUSE42.3和 Ubuntu16.04 双系统,当电脑插上网线后开机会出现A start job is running for Network Manager wait onlin ...
- DENON AVR-X510BT 功放设置记录
http://manuals.denon.com/avrx510bt/ap/zh/index.php 环绕模式 : Direct:直接 Sttereo:立体声 Dolby PL 声音模式 电影 : ...