1 增加(存在则添加,不存在则新建)

            //对xml的操作--
XmlDocument doc = new XmlDocument();
if (File.Exists("Person.xml"))
{
//如果存在,加载文档
doc.Load("Person.xml");
//获取根节点
XmlElement person = doc.DocumentElement; XmlElement student = doc.CreateElement("Student");
student.SetAttribute("ID", ""); XmlElement name = doc.CreateElement("Name");
name.InnerXml = "张三";
student.AppendChild(name); XmlElement age = doc.CreateElement("Age");
age.InnerXml = "";
student.AppendChild(age); XmlElement gender = doc.CreateElement("Gender");
gender.InnerXml = "男";
student.AppendChild(gender); person.AppendChild(student); }
else
{
//不存在创建
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.AppendChild(dec);
XmlElement person = doc.CreateElement("Person");
doc.AppendChild(person); XmlElement student = doc.CreateElement("Student");
student.SetAttribute("ID", ""); XmlElement name = doc.CreateElement("Name");
name.InnerXml = "逍遥小天狼";
student.AppendChild(name); XmlElement age = doc.CreateElement("Age");
age.InnerXml = "";
student.AppendChild(age); XmlElement gender = doc.CreateElement("Gender");
gender.InnerXml = "男";
student.AppendChild(gender); person.AppendChild(student);
}
doc.Save("Person.xml");

Add

2 查询

         //02-1 先加载
doc.Load("Person.xml");
//02-2 获取根节点
XmlElement person = doc.DocumentElement;
//02-3 将根节点下所有的子节点拿出来,放入到LNodeList中
XmlNodeList xnl = person.ChildNodes;
//02-4 显示
foreach (XmlNode item in xnl)
{
Console.WriteLine(item.InnerText);
}

Show

2.2 获取属性

//02-5 获取属性-修改节点
//获取字节s的方法
XmlNodeList Students = person.SelectNodes("Student");
foreach (XmlNode item in Students)
{
Console.WriteLine(item.Attributes["ID"].Value);
if (item.Attributes["ID"].Value=="")
{
//获取子节点方法 修改节点
item["Name"].InnerXml = "修改了名字";
}
}
doc.Save("Person.xml");

3 另一种读取xml文件方法 x-path

     #region 03-通过x-path获取数据
doc.Load("Person.xml");
//03-01 获取根节点
XmlElement person = doc.DocumentElement;
XmlNode xn = person.SelectSingleNode("/Person/Student[@ID='110']/Name");
Console.WriteLine(xn.InnerText);
#endregion

4 删除

 //04-01 加载文件,找到根节点
doc.Load("Person.xml");
XmlElement person = doc.DocumentElement;
person.RemoveAll();
Console.WriteLine("删除成功");

删除所有

5 删除部分节点

//05-01 加载文件,找到根节点
doc.Load("Person.xml");
XmlElement person = doc.DocumentElement;
XmlNode xn = person.SelectSingleNode("/Person/Student[@ID='110']/Age");
//注意不能直接删除,需要父节点删除
xn.ParentNode.RemoveAll();
Console.WriteLine("删除成功");
doc.Save("Person.xml");

6

步步为营-21-xml的增删改查的更多相关文章

  1. VB&XML的增删改查

    简介:XML的增删改查 开发过程中有许多后台操作XML的过程,每次需要操作时都是找很多代码来参考或者百度一下.今天决定补充下XML操作的知识,把XML操作的增删改查都写了一遍,供以后开发参考 查询: ...

  2. 对oracle里面clob字段里面xml的增删改查学习

    这段时间,我使用系统表里面有clob字段里面存放的xml信息,我们如何对xml进行增删改查操作呢,自己参考了很多也学到很多,给大家分享一下 首先我们先建测试表 CREATE TABLE EFGP_23 ...

  3. Mybatis_2.基于XML的增删改查

    1.实体类User.java public class User { private int id; private String name; private int age; //getter.se ...

  4. java实现xml文件增删改查

    java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...

  5. Mybatis之基于XML的增删改查

    这里先吐槽下,写的半天的东西,IE浏览器弹出调试窗口导致写的东西全部没保存,搞得我还要重新用谷歌写,思路全没了,fuck. 前面学习了下spring的DAO层,说起DAO层,那ORM肯定是少不了的,O ...

  6. java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

    一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...

  7. 使用idea对XML的增删改查

    XML:是一种可扩展标记性的语言,与java语言无关,它可以自定义标签. 1.首先需要到导入Dom4j架包,与自己所时候的ide关联 2.编写自己的xml文件,入上图所示(里面的所有元素及元素中的属性 ...

  8. c# xml的增删改查操作 xmlDocument 的用法

    1.将xml转换为DataTable string path = "";//xml的位置StringReader sr = null;XmlTextReader xmlReader ...

  9. .NET XML文件增删改查

    查询 采用的是DataSet 的 ReadXML方法. DataSet ds = new System.Data.DataSet(); ds.ReadXml("bdc.xml"); ...

  10. C# winform xml的增删改查

    代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Syst ...

随机推荐

  1. 搭建ftp

    相信很多人都知道ftp吧.打个比方.在你们公司或者学校里面有一个ftp地址,里面存放了你们所需要的一些常用的资源.这样的话你们就可以随时登录这个ftp来拉取你所需要的资源(在范围内),简单的来说,ft ...

  2. JavaSE学习总结(十七)—— IO流

    一.IO流概要 1.1.概念 开发中经常要进行输入输出操作,掌握Java中的IO流显得非常必要. 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流, ...

  3. Linux 内核 hlist 详解

    在Linux内核中,hlist(哈希链表)使用非常广泛.本文将对其数据结构和核心函数进行分析. 和hlist相关的数据结构有两个:hlist_head 和 hlist_node //hash桶的头结点 ...

  4. CM记录-JVM调优

    1.堆栈大小 2.JVM重用 3.GC

  5. POJ - 1905 Expanding Rods(二分+计算几何)

    http://poj.org/problem?id=1905 题意 一根两端固定在两面墙上的杆,受热后变弯曲.求前后两个状态的杆的中点位置的距离 分析 很明显需要推推公式. 由②的限制条件来二分角度, ...

  6. logback异步输出日志(生产者消费者模型),并非批量写入日志。

    一直对logback异步输出日志误解为异步批量写入日志. 今天看了源代码. 首先logback的异步日志是如何配置的: <!-- 管理端用户行为日志异步输出,异步的log片段必须在同步段后面,否 ...

  7. 14. Spring Boot的 thymleaf公共页抽取

    5).CRUD-员工列表实验要求:1).RestfulCRUD:CRUD满足Rest风格:URI: /资源名称/资源标识 HTTP请求方式区分对资源CRUD操作   普通CRUD(uri来区分操作) ...

  8. luogu 1631 序列合并

    priority_queue的使用,注意 a[1]+b[1],a[1]+b[2],a[1]+b[3],a[1]+b[4].......a[1]+b[n] a[2]+b[1]......... .. a ...

  9. Anaconda的安装和更新

    下载地址官网:https://www.anaconda.com/distribution/ 一.安装 二.下载安装完成后我们来检验一下是否安装成功 点击“开始” —— “Anaconda3(64-bi ...

  10. js设置div透明度

    原生js设置透明度 为了兼容IE与其他浏览器对透明度的设置,我们需要对以上两种样式分别进行设置: 复制代码代码如下: var alpha = 30; //透明度值变量 var oDiv = docum ...