//添加xml节点
    private void AddXml(string image, string title)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("../flash/dati.xml"));

        XmlNode root = xmlDoc.SelectSingleNode("images");//查找<images>
        XmlElement xe1 = xmlDoc.CreateElement("thumb");//创建一个<thumb>节点
        xe1.SetAttribute("displayNum", "6");//设置该节点displayNum属性
        xe1.SetAttribute("separation", "5");//设置该节点separation属性
        XmlElement xesub1 = xmlDoc.CreateElement("image");
        xesub1.InnerText = image;//设置文本节点
        xe1.AppendChild(xesub1);//添加到thumb节点中
        XmlElement xesub2 = xmlDoc.CreateElement("description");
        xesub2.InnerText = title;
        xe1.AppendChild(xesub2);
        root.AppendChild(xe1);//添加到<images>节点中
        xmlDoc.Save(Server.MapPath("../flash/dati.xml"));
    }
 
public void WriteXml(string FileName, string name, string age, string sex)
    {
        //初始化XML文档操作类
        XmlDocument myXml = new XmlDocument();

//加载指定的XML文件
        myXml.Load(FileName);

//添加元素-姓名
        XmlElement ele0 = myXml.CreateElement("name");
        XmlText Text0 = myXml.CreateTextNode(name);

//添加元素-年龄
        XmlElement ele1 = myXml.CreateElement("age");
        XmlText Text1 = myXml.CreateTextNode(age);

//添加元素-性别
        XmlElement ele2 = myXml.CreateElement("sex");
        XmlText Text2 = myXml.CreateTextNode(sex);

//添加元素的节点---studentRecord
        XmlNode newElem = myXml.CreateNode("element", "studentRecord", "");

//在节点中添加元素
        newElem.AppendChild(ele0);
        newElem.LastChild.AppendChild(Text0);
        newElem.AppendChild(ele1);
        newElem.LastChild.AppendChild(Text1);
        newElem.AppendChild(ele2);
        newElem.LastChild.AppendChild(Text2);

//将节点添加到文档中
        XmlElement root = myXml.DocumentElement;
        root.AppendChild(newElem);

//保存所有的修改
        myXml.Save(FileName);

}

 
 
 
 
   //删除节点内容
    private void DelXml(string image)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("../flash/dati.xml"));
        XmlNodeList xnl = xmlDoc.SelectSingleNode("images").ChildNodes;
       
        foreach (XmlNode xn in xnl)
        {
            XmlElement xe = (XmlElement)xn;
            if (xe.InnerText.IndexOf(image,0) >= 0)
            {
                xn.ParentNode.RemoveChild(xn);
               // xn.RemoveAll();
            }
        }
        xmlDoc.Save(Server.MapPath("../flash/dati.xml"));
    }
 
//修改
foreach(XmlNode xn in nodeList)//遍历所有子节点
   {
    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
    if(xe.GetAttribute("genre")=="")// 判读条件
    {
     xe.SetAttribute("genre",newStr);//则修改该属性为newstr 
     XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
     foreach(XmlNode xn1 in nls)//遍历
     {
      XmlElement xe2=(XmlElement)xn1;//转换类型
      if(xe2.Name=="author")//如果找到 //判读条件
      {
       xe2.InnerText=newText;//则修改
       break;//找到退出来就可以了
      }
     }
     break;
    }
 
 
//写XML

private void WriteXML()
        {
            XmlTextWriter xtw = new XmlTextWriter(@"MessageBook\Data\MessageBook1.xml"), null);
            xtw.Formatting = Formatting.Indented;

xtw.WriteStartDocument();
            //xtw.WriteComment();

xtw.WriteStartElement("Item");
            xtw.WriteElementString("UserName", "Tom");

xtw.WriteEndElement();

xtw.WriteEndDocument();
            xtw.Close();
        }

//读XML

private void ReadXML()

{

// 创建一个XmlTextReader类的对象并调用Read方法来读取XML文件
            XmlTextReader textReader  = new XmlTextReader("C:\\books.xml");
            textReader.Read();
            // 节点非空则执行循环体
            while ( textReader.Read() )
            {
                // 读取第一个元素
                textReader.MoveToElement();
               Console.WriteLine("XmlTextReader Properties Test");
                Console.WriteLine("===================");

// 读取该元素的属性并显示在控制台中
                Console.WriteLine("Name:" + textReader.Name);
                Console.WriteLine("Base URI:" + textReader.BaseURI);
                Console.WriteLine("Local Name:" + textReader.LocalName);
                Console.WriteLine("Attribute Count:" + textReader.AttributeCount.ToString());
                Console.WriteLine("Depth:" + textReader.Depth.ToString());
                Console.WriteLine("Line Number:" + textReader.LineNumber.ToString());
                Console.WriteLine("Node Type:" + textReader.NodeType.ToString());
                Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
}

C#中 添加 删除 查找Xml中子节点的更多相关文章

  1. 向redis中添加删除list列表

    转: 向redis中添加删除list列表 2018年04月18日 15:44:54 luo_yu_1106 阅读数:4082   一.添加 向redis中添加队列有两种方式 1.lpush l是lef ...

  2. redis cluster中添加删除重分配节点例子

    redis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢. 一,redis cluster命令行     //集群(cluster)  CLUSTER INFO 打 ...

  3. ORACLE中添加删除主键

    本文转自:http://blog.chinaunix.net/uid-17079336-id-2832443.html 1.创建表的同时创建主键约束(1)无命名create table student ...

  4. 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改的记录数

    开篇语 在这篇日志中 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 我介绍到了包级别的日志管理框架,那么这个主要是针对包这一个层级的 Log 信息,包括包开始执行和结束时间,以 ...

  5. mysql 在已存在的表中添加/删除字段约束AUTO_INCREMENT遇到的问题

    1. 在已存在的表中添加字段约束AUTO_INCREMENT修饰符 mysql> alter table user modify uid int auto_increment primary k ...

  6. easyui中在formatter: function (value, row,index) {中添加删除方法

    { field : 'abj', title : '操作', align : 'center', resizable:false, width:'10%', formatter: function ( ...

  7. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

  8. Ext.tree.Panel Extjs 在表格中添加树结构,并实现节点移动功能

    最近在用Extjs 做后台管理系统,真的非常好用.总结的东西分享一下. 先展示一下效果图 好了,开始吧! 首先说一下我的创建结构: 一.构造内容 这个函数中包括store的创建,treePanel的创 ...

  9. 在 UITextField 中添加删除绑定(绑定删除)

    要解决的问题 在输入框中,需要整体删除诸如 “xxx@xx.com” 或 “@xxxx” 等文本 实现思路 在删除动作时,获取到当前光标的位置,如果在光标正在处在上述文本范围内,就删除一整串文本 如何 ...

随机推荐

  1. Linux-打包和文件系统

    1 文件后缀 在Linux中后缀没有实际意义 2 打包文件 tar c 创建一个归档 v 查看过程 f 指定文件名 t 列出归档内容 x 从归档中解压出文件 C 改变到哪个目录 z gzip压缩 j ...

  2. bzoj 2155 Xor

    题目大意: 求一条从$1 \rightarrow n$的路径是异或和最大 思路: 先随便求一棵生成树,然后求出所有环,对于所有环都可以去转一圈只取到这个环的贡献 那么就是线性基裸题了 #include ...

  3. Js常见的六种报错

    EvalError: raised when an error occurs executing code in eval() EvalError:当一个错误发生在()执行的代码RangeError: ...

  4. docker 学习(四) springboot + docker

    下面演示: 在Windows上新建一个简单的Springboot工程,生成docker iamge,然后在本地的docker上运行: (1):登录到 https://start.spring.io/, ...

  5. ubuntu删除g2o

    解决方法为:(1)删除/usr/local/include/g2o,指令为sudo rm -rf /usr/local/include/g2o:(2)删除/usr/local/lib下有关libg2o ...

  6. CSS3:nth-child()伪类选择器,Table表格奇偶数行定义样式

    转自爱设计 原文链接http://www.dangshopex.com/jishufenxiang/WEBkaifajishu/8653.html CSS3的强大,让人惊叹,人们在惊喜之余,又不得不为 ...

  7. django使用QQ企业邮箱发送邮件

    一.首先申请QQ企业邮箱 免费QQ企业邮箱地址如下:https://exmail.qq.com/signupfree?refer=intro#signup/free 二.配置自己的域名 在域名解析中添 ...

  8. 201621123016 《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 结合题集题目7-1回答 1.1 自己以前编写的代码中经常出现 ...

  9. jpa使用原生SQL查询数据库like的用法

    jpa使用like查询,需要拼接字符串,如下 oracle用法: //dao层代码 @Query(value = "SELECT * FROM TABLENAME WHERE USER_NA ...

  10. Unity 与 Android (Android Studio)的交互

    http://blog.csdn.net/kuerjinjin/article/details/50177633 1.大体思路: 在Android Studio 中编译导出Jar库,提供函数供 Uni ...