其实今天的这篇博文 ,是对请几天发表的博文的一个总结,只是想把xml文件的增删改查结合起来,这样更容易让初学的朋友理解,废话也不多说了,开始吧!

下面是我把我在vs环境下写的代码ctrl+V然后ctrl+V了的,课根据自己的需要执行相应的方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Xml;
using System.IO;
namespace WriteXml
{
    class Program
    {
        static void Main(string[] args)
        {
            //createXml();//创建文件和添加基本数据,便于之后操作实验
            //addItem();//追加数据
            readtext();//读取数据
            //updatexml();//更新数据
            //delnode();//删除数据
        }

private static void createXml()
        {
            XmlTextWriter writer = new XmlTextWriter("titles.xml", null);
            //使用自动缩进便于阅读
            writer.Formatting = Formatting.Indented;

//写入根元素
            writer.WriteStartElement("items");
            writer.WriteStartElement("item");
            //写入属性及属性的名字
            writer.WriteAttributeString("类别", "文学");
            writer.WriteAttributeString("品质", "优");
            //加入子元素
            writer.WriteElementString("title", "毛著");
            writer.WriteElementString("author", "毛爷爷");
            writer.WriteElementString("price", "10.0");
            //关闭根元素,并书写结束标签
            writer.WriteEndElement();
            writer.WriteEndElement();
            //将XML写入文件并且关闭XmlTextWriter
            writer.Close();
        }
        private static void addItem()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("titles.xml");
            XmlNode root = xmlDoc.SelectSingleNode("items");
            XmlElement xe1 = xmlDoc.createElement_x("item");
            xe1.SetAttribute("类别", "张三");
            xe1.SetAttribute("品质", "老师");

XmlElement xmlsub1 = xmlDoc.createElement_x("title");
            xmlsub1.InnerText = "wahahha";
            xe1.AppendChild(xmlsub1);

XmlElement xmlsub2 = xmlDoc.createElement_x("author");
            xmlsub2.InnerText = "三毛";
            xe1.AppendChild(xmlsub2);

XmlElement xmlsub3 = xmlDoc.createElement_x("Price");
            xmlsub3.InnerText = "15.00";
            xe1.AppendChild(xmlsub3);

root.AppendChild(xe1);
            xmlDoc.Save("titles.xml");
        }

private static void readtext()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("titles.xml");
            XmlNode xn = xmlDoc.SelectSingleNode("items");
 
               XmlNodeList xnl=xn.ChildNodes;

foreach (XmlNode xnf in xnl)
               {
                   XmlElement xe = (XmlElement)xnf;
                   Console.Write("类别  "+xe.GetAttribute("类别")+"     品质  ");//显示属性值
                   Console.WriteLine(xe.GetAttribute("品质"));

XmlNodeList xnf1 = xe.ChildNodes;
                   foreach (XmlNode xn2 in xnf1)
                   {
                       Console.WriteLine(xn2.InnerText);//显示子节点点文本
                   }
                   Console.WriteLine();
               }
        }

private static void updatexml()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("titles.xml");
            XmlNode xns = xmlDoc.SelectSingleNode("items");

XmlNodeList xnl = xns.ChildNodes;
            foreach (XmlNode xn in xnl)
            {
                XmlElement xe = (XmlElement)xn;
                if (xe.GetAttribute("类别") == "文学")
                {
                    xe.SetAttribute("类别","娱乐")  ;
                   
                }
                else
                {
                    xe.SetAttribute("类别", "文学");
                }

XmlNodeList xnl2 = xe.ChildNodes;
                foreach (XmlNode xn2 in xnl2)
                {
                    XmlElement xe2 = (XmlElement)xn2;
                    if (xe2.Name=="price")
                    {
                        if (xe2.InnerText == "10.00")
                            xe2.InnerText = "15.00";
                        else
                            xe2.InnerText = "10.00";
                    }
                    //break;
                }
                //break;
            }
            xmlDoc.Save("titles.xml");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            readtext();
        }
        private static void delnode()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("titles.xml");

XmlNodeList xnl = xmlDoc.SelectSingleNode("items").ChildNodes;

foreach (XmlNode xn in xnl)
            {
                XmlElement xe = (XmlElement)xn;
                if (xe.GetAttribute("类别") == "文学")
                {
                    xe.RemoveAttribute("类别");//删除genre属性
                }
                else if (xe.GetAttribute("类别") == "娱乐")
                {
                    xe.RemoveAll();//删除该节点的全部内容
                }
            }
            xmlDoc.Save("titles.xml");

Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            readtext();
        }

}
}

好了 到此对xml文件的简单的操作已经结束了,如果只是偶尔用一下,而且是简单的操作这些已经够了,如果深一点的,那么就自己在稍稍研究一下。只要这篇博文你看懂了理解了,xml就变得弱小而任你宰割了!哈哈

转:http://blog.sina.com.cn/s/blog_699337e60100kwf5.html

C#程序:如何创建xml文件以及xml文件的增、删、改、查的更多相关文章

  1. 以前进行的程序安装创建了挂起的文件操作(SqlServer2000或SqlServer 2000 SP4补丁安装)

    在安装SqlServer 2000或者SqlServer 2000 SP4补丁时常常会出现这样的提示,从而不能进行安装,即使重新启动了计算机,也还是会有同样的提示.在网上查了一下资料,原来是注册表里记 ...

  2. iOS Plist 文件的 增 删 改

    一:Plist 文件的创建 Plist 文件作为我们IOS开发的一种数据存储文件,还是经常会用到的.在看<X-code江湖录>的时候,看到了这一点.自己就写了一下,把写的东西分享出来!先看 ...

  3. 一个ibatis映射文件的例子(包含增删改单查,多查)

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...

  4. 使用DOM进行xml文档的crud(增删改查)操作<操作详解>

    很多朋友对DOM有感冒,这里我花了一些时间写了一个小小的教程,这个能看懂,会操作了,我相信基于DOM的其它API(如JDOM,DOM4J等)一般不会有什么问题. 后附java代码,也可以下载(可点击这 ...

  5. xml的解析与创建——bing到youdao导入文件的转换

    首先是为了解决一个问题:如何将必应单词本中记录的单词转入到有道词典中去.实际上,必应词典可以导出xml文件,但是该文件有道词典无法解析.这里涉及到xml的解析和创建了. 代码如下: import ja ...

  6. 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

    原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...

  7. 编写Java程序,创建一个 XML 文档,文档名为“hero.xml”,用于保存“王者荣耀”的英雄信息。

    查看本章节 查看作业目录 需求说明: 创建一个 XML 文档,文档名为"hero.xml",用于保存"王者荣耀"的英雄信息.英雄信息包括编号(id).姓名(na ...

  8. OAF_文件系列6_实现OAF导出XML文件javax.xml.parsers/transformer(案例)

    20150803 Created By BaoXinjian

  9. 项目打包文件build.xml

    Make命令其实就是一个项目管理工具,而Ant所实现功能与此类似.像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷.最初Ant开发者在开发跨平台的应用 ...

  10. Java文件操作①——XML文件的读取

    一.邂逅XML 文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输.所以XML在现今应用程序中是非常流行的.本文主要讲Java解析和生成XML.用于不同平台.不同设备间的数据 ...

随机推荐

  1. std::move()和std::forward()

    std::move(t)负责将t的类型转换为右值引用,这种功能很有用,可以用在swap中,也可以用来解决完美转发. std::move()的源码如下 template<class _Ty> ...

  2. Sicily1317-Sudoku-位运算暴搜

    最终代码地址:https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1317.c 这题博主刷了1天,不是为了做出来,AC ...

  3. vmware产品

    https://my.vmware.com/cn/group/vmware/info?slug=datacenter_cloud_infrastructure/vmware_vsphere/5_5#o ...

  4. 337. House Robber III

    二刷吧..不知道为什么house robbery系列我找不到笔记,不过印象中做了好几次了. 不是很难,用的post-order做bottom-up的运算. 对于一个Node来说,有2种情况,一种是选( ...

  5. 微信开发 提示 Redirect_uri参数错误解决方法

    出现这个问题有多种原因: 1.没有配置网页授权 我们可以根据微信的开发者文档http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d ...

  6. 利用xshell从windows上传文件到虚拟机

    Xshell实现Windows上传文件到Linux主机 经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下:之前我 ...

  7. linux 入侵检查转载

    转载 本文给大家收集整理了一些审查Linux系统是否被入侵的方法,这些方法可以添加到你运维例行巡检中. 1. 检查帐户 代码如下: # less /etc/passwd # grep :0: /etc ...

  8. thymelef 布局 fragment

    需求:布局页面, 把首页分成四个页面: header  footer ,content ,aside ,从githua 下载的原型, 所有内容是在一起的,这里拆分, 重用, 减少代码量 做法: 新建页 ...

  9. 基于物联网技术和RFID电子客票的铁路自己主动检票机

    前言: RFID电子客票具有检阅速度快.信息量大.安全性高和高速物理定位的独特优势,随着标准的统一和成本的减少,它在铁路上有着巨大的应用前景,同一时候鉴于车站对物联网化的需求,我们设想出新一代的检票机 ...

  10. Test Bench基础知识笔记

    学的内容多了,好多指令和用法都容易遗忘和混淆,出现这种情况就需要勤记笔记,忘记了多翻阅几次,基本上就能完全记住了. [`timescale 1ns/1ps]前一个1ns表示时延时间,后一个1ps表示时 ...