//首先添加一个xml文件,一定要先手动添加一个根结点,否则程序找不到根结点

//<user></user>

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Xml;//这个是添加的

public partial class _Default : System.Web.UI.Page
{
    private XmlDataDocument xmlDoc;//声明全局变量xmlDoc,类型是XmlDataDocument
    protected void Page_Load(object sender, EventArgs e)
    {

}

//声明加载xml文件的方法
    private void xmlLoad()
    {
        xmlDoc = new XmlDataDocument();
        xmlDoc.Load(Server.MapPath("trytry.xml"));//文件名是trytry.xml
    }

//点击添加按钮,添加数据
    protected void ButtonAdd_Click(object sender, EventArgs e)
    {
        xmlLoad();//调用加载xml文件的方法
        XmlNode xmldocSelect = xmlDoc.SelectSingleNode("user");//xml文件的根结点是user

XmlElement el = xmlDoc.createElement_x_x ("person");//添加person节点
        el.SetAttribute("name", "云云");//添加属性名,及属性值
        el.SetAttribute("sex", "女");
        el.SetAttribute("age", "25");

XmlElement xesub1 = xmlDoc.createElement_x_x("pass");//添加person节点的子节点
        xesub1.InnerText = "123";//节点pass下的值是123
        el.AppendChild(xesub1);//将节点pass添加到父节点person下
        XmlElement xesub2 = xmlDoc.createElement_x_x("address");
        xesub2.InnerText = "中国西安";
        el.AppendChild(xesub2);

xmldocSelect.AppendChild(el);//将节点person加到根结点xmldocSelect下
        xmlDoc.Save(Server.MapPath("trytry.xml"));//保存,这个十分重要,否则没有数据

}

//点击修改按钮,修改数据
    protected void ButtonUpdata_Click(object sender, EventArgs e)
    {
        xmlLoad();//调用加载xml文件的方法
        XmlNodeList list = xmlDoc.SelectSingleNode("user").ChildNodes;//获得根节点user下的所有子节点

//遍历所有子节点

foreach (XmlNode node in list)
        {
            XmlElement xe = (XmlElement)node;//把节点node转换成XmlElement型
            if (xe.GetAttribute("name") == "云云")//如果节点的属性name的值是"云云"
            {
                xe.SetAttribute("name","哈哈");//把节点的name属性改为"哈哈"
            }
            XmlNodeList sublist = xe.ChildNodes;//再获得该节点的子节点
            foreach (XmlNode subnode in sublist)
            {
                XmlElement subxe = (XmlElement)subnode ;
                if (subxe.Name == "address")//如果节点是"address"
                {
                    if (subxe.InnerText == "中国西安")//如果该节点下的值是"中国西安"
                        subxe.InnerText = "中国三河";
                    break;
                }
            }
        }
        xmlDoc.Save(Server.MapPath("trytry.xml"));
    }

//点击删除按钮,删除数据
    protected void ButtonDele_Click(object sender, EventArgs e)
    {
        xmlLoad();
        XmlNodeList list = xmlDoc.SelectSingleNode("user").ChildNodes;
        foreach (XmlNode node in list)
        {
            XmlElement xe = (XmlElement)node;
            if (xe.GetAttribute("name") == "哈哈")
            {
                xe.RemoveAttribute("name");//删除属性
            }
            else
                xe.RemoveAll();//删除节点

//

这里有一点需要注意:用xe.RemoveAll()的方法删除是会留下一个空的节点,我们用node.ParentNode.RemoveChild(node);就能全部删除
        }

xmlDoc.Save(Server.MapPath("trytry.xml"));
      
    }
}

在这里还要补充一点,就是在访某个问子节点时,可以直接进行访问。代码如下

XmlNodeList list = xmlDoc.SelectSingleNode("user/person").ChildNodes;

这就是说,我访问的是“user”根结点下的“person”子节点。

还有一个需要说明,平时可能用到。就是我在同一个方法里访问两个xml文件,一定要一个一个来。否则会出错。也就是说访问两个xml文件的代码要分开写,不要杂糅在一起。明白了?

参考文献http://tech.it168.com/KnowledgeBase/Articles/c/1/8/c18b81c7598408094d70f68d65f43869.htm

c# xml添加 删除 修改数据相关推荐

  1. java jdbc 删除_java使用jdbc实现各种类型添加删除修改数据

    项目描述 上次为大家分享了使用jdbc实现各种类型查询数据,这次为大家分享使用jdbc实现各种类型添加.删除.修改数据 运行环境 jdk8+tomcat7+mysql 项目技术(必填) jdbc+da ...

  2. SQL语句添加删除修改字段

    用SQL语句添加删除修改字段 1.增加字段      alter table docdsp    add dspcode char(200) 2.删除字段      ALTER TABLE table ...

  3. 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等

    用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...

  4. 用SQL语句添加删除修改字段及一些表与字段的基本操作 .

    用SQL语句添加删除修改字段及一些表与字段的基本操作 分类: MS SQL 2009-07-02 14:41 222人阅读 评论(0) 收藏 举报 用SQL语句添加删除修改字段 1.增加字段      ...

  5. [转载]用SQL语句添加删除修改字段

    原文地址:用SQL语句添加删除修改字段作者:天涯草 用SQL语句添加删除修改字段 1.增加字段      alter table docdsp    add dspcode char(200) 2.删 ...

  6. mysql删除字段sql语句_用SQL语句添加删除修改字段

    用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...

  7. Js操作表格-对表格单元格的添加删除修改

    动态表格 动态表格彻底研究 对表格单元格的添加删除修改并对其进行移动以及拷贝等操作,是目前应用开发中常用的技术 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 55 5 6 6 6 ...

  8. mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能

    MySQL修改表结构添加删除修改字段 创建数据库CREATE DATABASE database_name 创建表CREATE TABLE `user` ( `id` int(11) unsigned ...

  9. sql添加,修改数据及删除表,表约束、字段及数据

    --建立学生数据库 create database 学生数据库;--建立学生表 create table 学生表 ( SNO CHAR(4), SN CHAR(8)NOT NULL, SEX CHAR ...

最新文章

  1. TensorRT Samples: GoogleNet
  2. 超图软件:以用户价值为源点做精准化的研发
  3. 为什么css设了字体颜色不变,css color设置字体颜色
  4. 杭州计算机学校哪家好,杭州2021年哪所计算机学校比较好
  5. js javaScript array 取指定元素索引、判断是否相同、重复、过滤数据
  6. CentOS 7 firewalld使用简介
  7. java 打印 模板_Java输入输出模板
  8. 为什么大部分的婚姻都是凑合?数据告诉你真相
  9. 使用beego开发多表查询返回字段问题
  10. 【人脸识别】VGGFace--基于VGGNet的人脸识别模型
  11. html文字阴影php,HTML_html5文字阴影效果text-shadow使用示例,复制代码代码如下: !DOCTYPE h - phpStudy...
  12. spring boot生成Excel表格 导出/导入
  13. js使用在指定数据前面或后面插入数据,对List数据排序
  14. linux查看目录是不是btrfs,btrfs文件系统常用命令使用
  15. Unity 创建Sprite导致的内存溢出奔溃问题
  16. 动起来!好玩的CSS抖动样式 – CSS Shake
  17. 2021-12-6 《聪明的投资者》学习笔记-3.一个世纪的股市历史:1972年年初的股价水平-股市周期性。股价、利润和股息
  18. html之制作banner按钮
  19. VUE3.0从安装到应用 (2)
  20. 仿QQ弹出窗口 gggggggggggg

热门文章

  1. 用SublimeText当Unity Shader的编辑器
  2. 简析LIVE555中的延时队列
  3. 总帐明细账对账不平数据库修改
  4. Python模块之 __future__
  5. CryptoJS -- JS加密算法库
  6. 【VSCode - Vetur 插件报错】Cannot find module ‘XXX‘ or its corresponding type declarations.Vetur(2307)
  7. 【HTML】底部弹窗插件代码
  8. 【C语言】逗号运算符的使用举例
  9. 给你的网站添加运行时间
  10. C#LeetCode刷题之#63-不同路径 II​​​​​​​(Unique Paths II)