本文共 3428 字,大约阅读时间需要 11 分钟。
XML文件概述
XML全称Extensible Markup Language,可扩展标记语言,与超文本标记语言(HTML,HyperText Markup Language)同属于标准通用标记语言的子集。XML被设计用来传输和存储数据,使文档具有结构性;而HTML被设计用来显示数据。XML的特点是:
– 与操作系统、编程语言的开发平台都无关; – 可以实现不同系统之间的数据交互。XML声明
属性
、
所有的XML元素都必须有结束标签; XML标签对大小写敏感; 必须正确地嵌套; 命名规则: 名称中可以包含字母、数字或者其他的字符; 不能以数字或者标点符号开始; 不能包含空格。空元素可以简写在一对尖括号里面:
属性
语法如下,一个元素可以有多个属性:<元素名 属性名="属性值" /> <元素名 属性名1="属性值1" 属性名2="属性值2" />eg.Tom
**注释
XML文件中的注释采用 格式。XML文件声明之前不能有注释;
注释不能嵌套。**CDATA区
在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理,遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直接原封不动的输出。 语法为:C#读取XML文件
01创建xml文件2 小伙砸 100 3 啦啦 200 4 哈哈 400
创建对应的类
public class skill { public int id { get; set;} public string name { get; set; } public string lange { get; set;} public int damage { get; set;} public override string ToString() { return $"{nameof(id)}: {id}, {nameof(name)}: {name}, {nameof(lange)}: {lange}, {nameof(damage)}: {damage}"; } }
解析
class Program { static void Main(string[] args) { //xml.Load(path);//导入指定xml文件 //xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml")); XmlNode root = xml.SelectSingleNode("/root");//指定一个节点 //XmlNodeList childlist = root.ChildNodes;//获取节点下所有直接子节点 //XmlNodeList nodelist = xml.SelectNodes("/Root/News");//获取同名同级节点集合string id=node.Attributes["id"].Value;//获取指定节点的指定属性值 //string content = node.InnerText;//获取指定节点中的文本 //root.HasChildNodes;//判断该节点下是否有子节点 skill skill=null; XmlDocument xml =new XmlDocument();//初始化一个xml实例 xml.Load("SkillinfoList.txt");//载入文件 //xml.LoadXml(File.ReadAllText("SkillinfoList.txt"));//传递一个字符串 //得到根节点 //XmlNode root = xml.FirstChild; //得到根节点的所有字节点 //XmlNodeList nodeList = root.ChildNodes; //或者这个 XmlElement root = xml.DocumentElement; XmlNodeList nodelist=root.ChildNodes; //遍历输出. foreach (XmlNode node in nodelist) { int id = int.Parse(node.ChildNodes[0].InnerText);//InnerText节点包含的所有文本内容 string lang = node.ChildNodes[1].Attributes[0].InnerText; string name = node.ChildNodes[1].InnerText; int damage = int.Parse(node.ChildNodes[2].InnerText); skill =new skill(){damage = damage,id = id,lange = lang,name = name,}; Console.WriteLine(skill.id + " " + skill.lange + " " + skill.name + " " + skill.damage); } Console.ReadKey(); } }
Document 对象的属性
XmlDocument类1、DocumentElement属性返回根标签(不是根节点)。
2、XmlElement继承自XmlNode。可以通过XmlElement类对象获取属性的值,将XmlNode对象通过向下转型为XmlElement对象,在通过XMLElement对象获取属性值。GetAttribute(属性名)方法可以通过属性名访问某一个属性。
3、Load方法可以通过路径加载Xml文件,loadXml方法是通过string类型的文本加载Xml文件
4、XmlNodeList list=节点.ChildNodes返回所有子节点列表(注意该属性不返回孙节点)。
5、innerText属性返回该节点下包含的所有文本,包含子节点和孙节点中包含的文本。调用innerText 属性的节点下的所有文本都会放到一起,不会自动根据节点分割。可以通过键值对的形式访问对应子标签下的文本。例如父标签[“子标签”].innerText,访问子标签下的文本
转载地址:http://rcrxo.baihongyu.com/