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. TCP的代码

    视频已经发布,这里是所有的代码仅供参考. TCP服务器: MainWindow里面的代码: using System; using System.Collections.Generic; using ...

  2. PL/SQL可以连oracle,但是jdbc连不上 【转】

    场景描述 此处是jdbc连接: try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = " ...

  3. centos7安装telnet

    yum list |grep telnet yum install telnet.x86_64 安装后再测试

  4. HTML5的 input:file上传 以及 类型控制

    以HTML5的文件上传API 如下demo代码在.html文件打开即可: !DOCTYPE html> <html lang="zh_cn"> <head& ...

  5. CSS魔法(一) 盒子模型

    序言 盒子模型(橘子橘子皮) 一个盒子,包括:外边距(margin).边框(border).内边距(padding)以及最中间的内容(content). margin.padding <styl ...

  6. MongoDB - 日常操作二

    MongoDB 开启认证与用户管理  ./mongo # 先登录 use admin # 切换到admin库 db.addUser(") # 创建用户 db.addUser('zhansan ...

  7. Android的网络通信机制

    1. Socket接口 不常用 2.HttpURLConnection接口 3. HttpClient接口 http://blog.csdn.net/ccc20134/article/details/ ...

  8. Spring+SpringMVC+mybatis整合以及注解的使用(三)

    1.包结构:

  9. NMS和soft-nms算法

    非极大值抑制算法(nms) 1. 算法原理 非极大值抑制算法(Non-maximum suppression, NMS)的本质是搜索局部极大值,抑制非极大值元素. 2. 3邻域情况下NMS的实现 3邻 ...

  10. Jquert data方法获取不到数据,显示为undefined。

    在使用jquery的data-xxxx自定义属性名使用小写 以下是我测试代码: 结果显示Undefined 现在将“data-Name”变为“data-name”,将大写的部分全部变为小写. 可以获取 ...