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>
本文仅供参考