步步为营-21-xml的增删改查
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的增删改查的更多相关文章
- VB&XML的增删改查
简介:XML的增删改查 开发过程中有许多后台操作XML的过程,每次需要操作时都是找很多代码来参考或者百度一下.今天决定补充下XML操作的知识,把XML操作的增删改查都写了一遍,供以后开发参考 查询: ...
- 对oracle里面clob字段里面xml的增删改查学习
这段时间,我使用系统表里面有clob字段里面存放的xml信息,我们如何对xml进行增删改查操作呢,自己参考了很多也学到很多,给大家分享一下 首先我们先建测试表 CREATE TABLE EFGP_23 ...
- Mybatis_2.基于XML的增删改查
1.实体类User.java public class User { private int id; private String name; private int age; //getter.se ...
- java实现xml文件增删改查
java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...
- Mybatis之基于XML的增删改查
这里先吐槽下,写的半天的东西,IE浏览器弹出调试窗口导致写的东西全部没保存,搞得我还要重新用谷歌写,思路全没了,fuck. 前面学习了下spring的DAO层,说起DAO层,那ORM肯定是少不了的,O ...
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...
- 使用idea对XML的增删改查
XML:是一种可扩展标记性的语言,与java语言无关,它可以自定义标签. 1.首先需要到导入Dom4j架包,与自己所时候的ide关联 2.编写自己的xml文件,入上图所示(里面的所有元素及元素中的属性 ...
- c# xml的增删改查操作 xmlDocument 的用法
1.将xml转换为DataTable string path = "";//xml的位置StringReader sr = null;XmlTextReader xmlReader ...
- .NET XML文件增删改查
查询 采用的是DataSet 的 ReadXML方法. DataSet ds = new System.Data.DataSet(); ds.ReadXml("bdc.xml"); ...
- C# winform xml的增删改查
代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Syst ...
随机推荐
- 函数和常用模块【day04】:函数介绍(一)
本节内容 1.函数介绍 2.函数定义 3.为什么要使用函数 一.介绍 在我们以往的学习编程的过程当中,碰到的最多的两张编程方式或者说编程方法:面向过程和面向对象.其实不管是哪一种,其实都是编程的方法论 ...
- javascript 函数的4种调用模式
1. 函数模式 // this 指向 window 全局对象 2. 方法模式 // this 指向调用这个方法的对象 3. 构造函数模式 // this 指向 new 新创建出来的实例 4. 上下文模 ...
- Linux 命令详解(七)Systemd 入门教程:命令篇
Systemd 入门教程:命令篇http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
- 【★★★★★】提高PHP代码质量的36个技巧
http://www.cnblogs.com/52php/p/5658031.html 不要直接使用 $_SESSION 变量 某些简单例子: $_SESSION['username'] = $use ...
- 算法排序【时间复杂度O(n^2)】
排序算法的两个原则: 1.输出结果为递增或者递减. 2.输出结果为原输入结果的排列或者重组. 平均时间复杂度为O(n^2)的排序算法有三种: 冒泡排序,插入排序,选择排序. 一.冒泡排序: 即谁冒泡泡 ...
- 20155313 2016-2017-2 《Java程序设计》第五周学习总结
20155313 2016-2017-2 <Java程序设计>第五周学习总结 教材内容学习 第八章 异常处理 程序中总有些意想不到的状况所引发的错误,Java中的错误也以对象方式呈现为ja ...
- JavaScript之数值计算
//两等长数组对应元素之间做减法运算[可拓展:基本运算(+/-*//)] function array_dif(length,arrayA,arrayB){ var array = new Array ...
- 一个极好的JavaScript学习网址
JavaScript学习网址:https://javascript.info/ 网址界面如下,内容和排版都非常不错,内容也比较新,不像一些教程已经是好几年前的了.把这个教程浏览一遍,能够解答很多看代码 ...
- Java 学习札记(二)TomCat安装配置
1.下载TomCat 下载地址:http://tomcat.apache.org/ 2.配置环境变量 CATALINA_HOME:F:\JAVA\apache-tomcat-6.0.18\apache ...
- MySQL中几个关于时间/时区的变量
一.log_timestamps 1.1.官方解释 log_timestamps: Log timestamp format. Added in MySQL 5.7.2.This variable c ...