C# XML文件XPath方法增删改查方法简单易学

XML可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

1.可扩展标记语言是一种很像超文本标记语言的标记语言。
2.它的设计宗旨是传输数据,而不是显示数据。
3.它的标签没有被预定义。您需要自行定义标签。
4.它被设计为具有自我描述性。
5.它是W3C的推荐标准。

本人用的是XPath方法写的
XmlElement对象:主要是针对节点的一些属性进行操作
SelectSingleNode 方法 选择匹配XPath表达式的第一个XmlNode
SelectNode 方法 选择匹配XPath表达式的XMLNode集合

XML结构列表:
XmlDocument		XML文档
XmlNode			XML中单个的节点,如<Shcool>
XmlAttribute			XML元素中的属性
XmlText				表示元素或属性的文本内容
XmlElement			最小元素,如<Name>张三</Name>
XmlComment		表示XML注释的内容
XmlDeclaration		XML文档第一行的声明


常用对象属性及方法:

1.XmlDocument对象:主要是针对节点的CUID操作
	DocumentElement 		属性	获取文档的根
	ChildNodes      		属性	获取节点的所有子节点
	Name					属性	获取节点的限定名称
	Value					属性	获取或设置节点的值 
	Load()					方法	加载整个XML的结构
	CreateAttribute 			方法	创建具有指定Name的属性
	Save()					方法	将XML文档保存到指定的位置
	CreateXmlDeclaration 	方法	创建一个具有指定值的XmlDeclaration节点 
	AppendChild				方法	将指定的节点添加到该节点的子节点列表的末尾。  

2.XmlNode对象:为抽象类,做为以上两类的基类,提供一些操作节点的方法
	InnerText				属性	当前节点的值
	Name					属性	当前节点的名字
	ChildNodes				属性	当前节点的所有子节点
	CreateNode				方法	创建一个新的节点
	RemoveAll				方法	移除当前节点的所有子节点和/或属性 
//查询
根据根节点下的子节点来进行查询:Persons/Person
            //XmlDocument xmld = new XmlDocument();
            //xmld.Load("XML1.xml");
            //XmlElement root = xmld.DocumentElement;
            //XmlNodeList xmlist = xmld.SelectNodes("Persons/Person");
            //foreach (XmlNode xn in xmlist)
            //{
            //    Console.WriteLine(xn.InnerText);
            //}
            //Console.ReadKey();
 //增加
   根据子节点增加,增加起来比较复杂不像SQLSERVER的增加语句那么简单
            //XmlDocument xmld = new XmlDocument();
            //xmld.Load("XML1.xml");
            //XmlNode person = xmld.CreateNode(XmlNodeType.Element,"Person",null);
            //XmlElement xp = (XmlElement)person;
            //xmld.DocumentElement.AppendChild(xp);
            //增加姓名
            //XmlNode Name = xmld.CreateNode(XmlNodeType.Element, "Name", null);
            //Name.InnerText = "郑七";
            //person.AppendChild(Name);
            //增加年龄
            //XmlNode Age = xmld.CreateNode(XmlNodeType.Element, "Age", null);
            // Age.InnerText = "250";
            //person.AppendChild(Age);
            //增加性别
            //XmlNode Sex = xmld.CreateNode(XmlNodeType.Element, "Sex", null);
            //Sex.InnerText = "男";
            //person.AppendChild(Sex);
            //xmld.Save("XML1.xml");
            //Console.ReadKey();
//修改
此代码可以修改子节点里的每一个属性:Persons/Person/Name

            //XmlDocument xmld = new XmlDocument();
            //xmld.Load("XML1.xml");
            //XmlNodeList names = xmld.SelectNodes("Persons/Person/Name");
            //foreach (XmlNode name in names)
            //{
            //    if (name.InnerText.Equals("小张"))
            //    {
            //        name.InnerText = "大张";
            //    }
            //}
            //xmld.Save("XML1.xml");
            //Console.ReadKey();
//删除
删除比较复杂
根节点下的子节点不能同名,否则删除的话会同时删除相同的子节点:Persons/Persona
            //XmlDocument xmld = new XmlDocument();
            //xmld.Load("XML1.xml");
            //XmlNodeList xml = xmld.SelectNodes("Persons/Persona");
            //foreach (XmlNode x in xml)
            //{
            //    XmlElement xe = (XmlElement)x;
            //    if (xe.GetAttribute("小张").Length==0) {
            //        xmld.DocumentElement.RemoveChild(xe);
            //    }
            //}
            //xmld.Save("XML1.xml");
            //Console.ReadKey();
本段代码是XML文件
<?xml version="1.0" encoding="utf-8" ?>
<Persons>
  <Persona>
    <Name>小张</Name>
    <Age>250</Age>
    <Sex>男</Sex>
  </Persona>
  <Person id="12">
  <Name>小芳</Name>
    <Age>17</Age>
    <Sex>女</Sex> 
    </Person>
</Persons>

本文仅供参考

猜你喜欢

转载自blog.csdn.net/qq_42075398/article/details/82820126
今日推荐