<?xml version="1.0" encoding="utf-8"?>
<Products>
  <Product id="0" proName="aa1" proPrice="12" proInfo="bb">
  </Product>
  <Product id="1" proName="电脑" proPrice="3200" proInfo="电脑电脑电脑电脑电脑电脑">
  </Product>
  <Product id="2" proName="mp4" proPrice="400" proInfo="mp4mp4mp4mp4mp4mp4mp4mp4mp4">
  </Product>
  <Product id="3" proName="mp4" proPrice="400" proInfo="mp4mp4mp4mp4mp4mp4mp4mp4mp4">
  </Product>
  <Product id="4" proName="mp5" proPrice="500" proInfo="mp5mp5mp5mp5mp5mp5mp5mp5mp5">
  </Product>
</Products>

下面我们来看看如何对上面的xml文档进行删除和修改的操作:

其实很简单,大概也是分一下几个步骤:

1、将xml文档加载到内存中

2、找到要删除的节点(根据条件)

3、重新保存加载xml文档

根绝代码具体来看看如何操作

修改:

protected void Button2_Click(object sender, EventArgs e)
    {
        XmlDocument xmldocument = new XmlDocument();
        string path = Server.MapPath("~/Product.xml");
        xmldocument.Load(path);
        string xmlPath = "//Products//Product";

//根据路径找到所有节点
        XmlNodeList nodeList = xmldocument.SelectNodes(xmlPath);

//循环遍历这些子
        foreach (XmlNode node in nodeList)
        {

//根据节点的某个属性找到要操作的节点
            if(node.Attributes["id"].Value=="4")
            {

//对节点进行修改操作
                node.Attributes["proName"].Value = "aa1";
                node.Attributes["proPrice"].Value = "12";
                node.Attributes["proInfo"].Value = "bb";
            }
           
        }

//重新加载保存
        xmldocument.Save(path);
    }

上面是对xml进行的修改的操作,删除基本和它差不多

删除

protected void Button1_Click(object sender, EventArgs e)
    {
        XmlDocument doc = new XmlDocument();
        string path = Server.MapPath("~/Product.xml");
        doc.Load(path);
        XmlNodeList xmlNodeList = doc.SelectNodes("//Products//Product");
        foreach (XmlNode xmlNode in xmlNodeList)
        {
            if(xmlNode.Attributes["id"].Value=="4")
            {

//找到父节点,从父节点删除该节点
                xmlNode.ParentNode.RemoveChild(xmlNode);
            }
        }
        doc.Save(path);
    }

当然了,也可以删除通过RomoveAllAttributes,RemoveAttribute或RemoveAttributeAt等来删除属性

前端时间,在一本项目教材书上,看到他们对Xml文档处理的时候,在查找节点的时候用的是索引

XmlNode xmlNode = doc.SelectSingleNode("//Products//Product[5]");

本人认为这种方法不可取,我们一般都会让你一个id对应一个节点,如果采取这种方式,那么很可能无法找到需要的节点,造成程序方面的错误,这是本人的一些见解,大家有什么意见可以提出来,共同学习!

转载于:https://www.cnblogs.com/shuang121/archive/2011/03/01/1967799.html

对Xml文档进行操作(修改,删除)相关推荐

  1. JavaEE之使用DOM4J和XPath对xml文档的添加,删除,查询操作

    程序运行结果如下图: XML文档如下: <?xml version="1.0" encoding="UTF-8"?><exam> < ...

  2. Dom4j完整教程~XML文档简单操作

    读取XML文档: 读写XML文档主要依赖于org.dom4j.io包,有DOMReader和SAXReader两种方式.因为利用了相同的接口,它们的调用方式是一样的. public static Do ...

  3. ASP.NET学习6 XML文档的操作

    这两天搞用户权限的设计和实现: 用户表: UserID int UserName nvarchar(50) 角色表: RoleID int RoleName nvarchar(50) 用户角色表: U ...

  4. C#读取与修改XML文档

    在项目开发中,对XML文档的操作是很常用的,这里,简单的说明读取与修改XML文档 XML文档的格式 <?xml version="1.0" encoding="ut ...

  5. xquery删除_XQuery实例删除SQL XML文档

    xquery删除 Delete operations over SQL XML should be possible with either erasing the XML document with ...

  6. 第十三章、C#操作XML文档(XmlDocument、XmlNode、XmlAttribute、SelectSingleNode、SelectNodes、XmlNodeList)...

    XML文档是一种通用的文档,这种文档既可以用.config作为后缀也可以用.xml作为后缀.XML文档主要由元素节点和节点的属性共同构成的.它有且仅有一个根节点,其他的节点全部都是根节点的子节点或者子 ...

  7. 使用JAXP对xml文档进行DOM解析基础

    XML解析方式分为两种:dom和sax         dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式.        sax ...

  8. libxml -- 解析 XML 文档

    参考 http://xmlsoft.org/ http://www.miidoo.cn/info_detail-204.html http://www.blogjava.net/wxb_nudt/ar ...

  9. 利用VC++与MSXML解析XML文档

    一.文档对象模型(DOM) DOM是Document Object Model(文档对象模型)的简称,是对XML文档进行应用开发.编程的应用程序接口(API).作为W3C公布的一种跨平台.与语言无关的 ...

最新文章

  1. MongoDB数据库(二:高级操作)
  2. dz 数据表分析!!!
  3. Linux操作系统上lsof命令详解
  4. Proj.4 升级新版本5.x和6.x
  5. 《笑谈银行IT》—畅谈“银行IT系统”
  6. 《人脸识别原理及算法——动态人脸识别系统研究》—1章1.2节人脸识别相关学科的进展...
  7. Android中的拍照camera和camera2
  8. 平衡树-Treap基础内容
  9. 情感分析朴素贝叶斯_朴素贝叶斯推文的情感分析
  10. Java中数据是如何存储
  11. leetcode94. 二叉树的中序遍历(左中右)
  12. 三调 图斑地类面积_三调对于最小上图图斑面积的要求是:
  13. java实现封装的三步是_JAVA基础-封装
  14. mysql数据库自学_MySQL数据库自学
  15. 多音效播放本地调试OK!打包到android播放不正常
  16. B2B供应链管理平台主流技术架构方案
  17. 基于ssm小学芙童币和芙童印章管理系统-计算机毕业设计源码文档
  18. 分享一个自动外呼系统案例
  19. [ACL22] HIBRIDS:Hierarchical Biases for Structure-aware Long Document Summarization 阅读笔记
  20. WIF调试分享(ap6256)

热门文章

  1. 成吉思汗:“世界之鞭”还是“人类之王”?
  2. java 什么是servlet_JavaWeb解释一下什么是 servlet?
  3. 最大子序列求和_算法——求最大子段和
  4. angular做语言切换_angular多语言配置详解
  5. CAT arguments dimensions are not consistent.CAT参数的维度不一致。
  6. HDU 4109 Instrction Arrangement
  7. 设置Jexus开机启动
  8. sublime 设置自动换行
  9. Cache的一些总结
  10. 面向对象重写(override)与重载(overload)区别