XML 增、删、改

样本XML文件(bookstore.xml)

<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book genre="fantasy" ISBN="2-3631-4">
    <title>Oberon's Legacy</title>
    <author>Corets, Eva</author>
    <price>5.95</price>
  </book>
</bookstore>

1、往<bookstore>节点中插入一个<book>节点:


XmlDocument xmlDoc = new XmlDocument();
 xmlDoc.Load("E:\\bookstore.xml");
 XmlNode root = xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
 XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个<book>节点
 xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性
 xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性

 XmlElement xesub1 = xmlDoc.CreateElement("title");
 xesub1.InnerText = "CS从入门到精通";//设置文本节点
 xe1.AppendChild(xesub1);//添加到<book>节点中
 XmlElement xesub2 = xmlDoc.CreateElement("author");
 xesub2.InnerText = "候捷";
 xe1.AppendChild(xesub2);
 XmlElement xesub3 = xmlDoc.CreateElement("price");
 xesub3.InnerText = "58.3";
 xe1.AppendChild(xesub3);
 root.AppendChild(xe1);//添加到<bookstore>节点中
 xmlDoc.Save("E:\\bookstore.xml");

修改后的xml文件为:


<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book genre="fantasy" ISBN="2-3631-4">
    <title>Oberon's Legacy</title>
	<author>Corets, Eva</author>
    	<price>5.95</price>
  </book>
  <book genre="李赞红"ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </book>
</bookstore>

2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。

	    XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("E:\\bookstore.xml");
            XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
            foreach (XmlNode xn in nodeList)//遍历所有子节点
            {
                XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
                if (xe.GetAttribute("genre") == "李赞红")//如果genre属性值为“李赞红”
                {
                    xe.SetAttribute("genre", "update李赞红");//则修改该属性为“update李赞红”
                    XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
                    foreach (XmlNode xn1 in nls)//遍历
                    {
                        XmlElement xe2 = (XmlElement)xn1;//转换类型
			//title、author、price都会在xe2.Name中取到
                        if (xe2.Name == "author")//如果找到
                        {
                            xe2.InnerText = "亚胜";//则修改
                            break;//找到退出来就可以了
                        }
                    }
                    break;
                }
            }
            xmlDoc.Save("bookstore.xml");//保存。

小注:

1、去掉修改节点代码中的两个break后,该代码可以实现遍历修改整个xml文档的功能,由此可见foreach对于操作XML文件,可以进行遍历的修改,但不能进行遍历的增加与删除。

2、注意对于xml文件操作中for与foreach的对应转化:关于XML遍历新增节点,修改属性小例  
修改后的xml文件为:

<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book genre="fantasy" ISBN="2-3631-4">
    <title>Oberon's Legacy</title>
    <author>Corets, Eva</author>
    <price>5.95</price>
  </book>
  <book genre="update李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>亚胜</author>
    <price>58.3</price>
  </book>
</bookstore>

3、删除 <bookgenre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <bookgenre="update李赞红" ISBN="2-3631-4">节点。


	    XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("E:\\bookstore.xml");
            XmlNodeList xnl = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
            foreach (XmlNode xn in xnl)
            {
                XmlElement xe = (XmlElement)xn;
                if (xe.GetAttribute("genre") == "fantasy")
                {
                    xe.RemoveAttribute("genre");//删除genre属性
                }
                else if (xe.GetAttribute("genre") == "李赞红")
                {
		    //RemoveAll会移除指定节点下所有信息,但会保留该节点
                    xe.RemoveAll();//删除该节点的全部内容
                }
            }
            xmlDoc.Save("E:\\bookstore.xml");
小注:在操作XML文件的时候使用了foreach,故删除一个节点的全部内容后,便会跳出foreach循环。
修改后的xml文件为:

<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book ISBN="2-3631-4">
    <title>Oberon's Legacy</title>
    <author>Corets, Eva</author>
    <price>5.95</price>
  </book>
  <book>
  </book>
</bookstore>

4、显示所有数据。



	   XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("E:\\bookstore.xml");
            XmlNode xn = xmlDoc.SelectSingleNode("bookstore");
            XmlNodeList xnl = xn.ChildNodes;
            foreach (XmlNode xnf in xnl)
            {
                XmlElement xe = (XmlElement)xnf;
                MessageBox.Show(xe.GetAttribute("genre"));//显示属性值
                MessageBox.Show(xe.GetAttribute("ISBN"));
                XmlNodeList xnf1 = xe.ChildNodes;
                foreach (XmlNode xn2 in xnf1)
                {
                    MessageBox.Show(xn2.InnerText);//显示子节点点文本
                }
            } 

原文地址==》

 




				
时间: 2024-11-10 01:02:46

XML 增、删、改的相关文章

oracle监控某表变动触发器例子(监控增,删,改)_oracle

使用oracle触发器 实现对某个表的增改删的监控操作,并记录到另一个表中. 代码: 复制代码 代码如下: create or replace trigger test_trigger    before insert or update or delete on test_table    for each row  declare    v_id        varchar2(30);    v_bdlb      varchar2(1);    v_jgdm      VARCHAR2(

简单的php数据库操作类代码(增,删,改,查)_php实例

数据库操纵基本流程为: 1.连接数据库服务器 2.选择数据库 3.执行SQL语句 4.处理结果集 5.打印操作信息 其中用到的相关函数有 •resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] ) 连接数据库服务器•resource mysql_pconnect ( [string server [, strin

Struts2实现CRUD(增 删 改 查)功能实例代码_java

CRUD是Create(创建).Read(读取).Update(更新)和Delete(删除)的缩写,它是普通应用程序的缩影.如果您掌握了某框架的CRUD编写,那么意味可以使用该框架创建普通应用程序了,所以大家使用新框架开发OLTP(Online Transaction Processing)应用程序时,首先会研究一下如何编写CRUD.这类似于大家在学习新编程语言时喜欢编写"Hello World". 本文旨在讲述Struts 2上的CRUD开发,所以为了例子的简单易懂,我不会花时间在数

Lucene能否像数据库那样对已存放记录的索引文件的某字段进行增/删/改?

问题描述 比如现在的索引文件中的字段是articleid.title.content.create_date.userid,并且已经索引了10000个记录.我现在需要将其中的userid字段删除掉,将date字段重命名为last_modify,同时增加一个visit_count字段.请问Lucene是否支持这样的操作呢? 解决方案 据我所知不能,都不能不过你可以试试引用通过读取index文件,然后遍历所有的doc,获取所有的field,然后添加到你新的doc里面,然后重新写入index文件因为我

使用DataTable更新数据库(增,删,改)_实用技巧

1.修改数据 复制代码 代码如下:             DataRow dr = hRDataSet.Tables["emp"].Rows.Find(textBox3.Text);            //DataRow dr = hRDataSet.Tables["emp"].Select("id="+textBox3.Text)[0];            dr.BeginEdit();            dr["nam

JS操作图片(增,删,改) 例子_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></titl

简单的增 删 改 查

一:insert语句into 关键字是可选的values关键字前面的()是可选的,这里是要接收数据的列values后面,有两种方式提供值1:显式的给出值  2:从select语句中导出值 insert语句注意几点1:不要理标志列,系统会给你插入的2:给出实际的值,如果没有,那就null3:给出默认的值,default关键字,告诉数据库取默认值 insert into ... select什么时候会这么用,当成批的数据来自1:数据库中的另一个表2:同一台服务器完全不同的数据库3:另一个SQLSER

EF里单个实体的增查改删以及主从表关联数据的各种增删改查

原文:EF里单个实体的增查改删以及主从表关联数据的各种增删改查 本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(查询导航属性为集合.查询导航属性为单个对象) 修改(修改从表的外键) 删除(删除主从表关系.删除主表数据.删除主从表数据.修改从表数据外键) 补充内容 SaveChanges方法提交多次操作 DbSet.Add方法返回当前实体 源码和系列文章导航 注:本章节多次演

javascript Xml增删改查(IE下)操作实现代码_javascript技巧

html文件: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>j

asp.net操作xml增删改示例分享

 这篇文章主要介绍了asp.net操作xml增删改示例,需要的朋友可以参考下   代码如下: using System;  using System.Collections;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Web;  using System.Web.SessionState;  using System.Web.UI;  using System.We