XML
命名空间: Using System.Xml;
程序集: System.Xml(在System.Xml.dll中)
涉及到的类和方法:
XmlDeclaration 类:表示 XML 声明节点:<?xml version='1.0'...?>,XML文件第一行。
XmlDocument 类:表示 XML 文档。 可使用此类在文档中加载、验证、编辑、添加和放置 XML。
CreateElement 方法 (String, String, String):创建具有指定 Prefix、LocalName 和 NamespaceURI 的元素。
Prefix:新元素的前缀(如果有的话)。
LocalName:新元素的本地名称。
NamespaceURI:新元素的命名空间 URI(如果有的话)。
XmlElement 类:表示元素。
XmlNode 类:表示 XML 文档中的单个节点。
AppendChild方法:将指定的节点添加到该节点的子节点列表的末尾。
SelectSingleNode方法:选择第一个 XmlNode ,与 XPath 表达式匹配。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <User> 3 <root student.Name="祥妹妹" student.Age="25"> 4 <Name>祥妹妹</Name> 5 <Age>25</Age> 6 <Class>1702B</Class> 7 </root> 8 </User>
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Xml; 7 8 namespace a 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 15 16 Student student = new Student(); 17 student.Name = "祥妹妹"; 18 student.Age = 25; 19 20 21 22 23 24 //创建XmlDocument对象 25 //XmlDocument 表示XML文档可使用此类在文档中加载、验证、编辑、添加和放置 XML 26 XmlDocument xmlDoc = new XmlDocument(); 27 28 //XML的声明<?xml version="1.0" encoding="gb2312"?> 29 //声明后的数据,表示XML的开头 <?xml version="1.0" encoding="UTF-8"?> 30 XmlDeclaration xmlSM = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); 31 32 //追加xmldecl位置 33 xmlDoc.AppendChild(xmlSM); 34 //添加一个名为User的根节点 35 XmlElement xml = xmlDoc.CreateElement("", "User", ""); 36 //追加User的根节点位置 37 xmlDoc.AppendChild(xml); 38 //添加另一个节点,与User所匹配,查找<User> 39 XmlNode User = xmlDoc.SelectSingleNode("User"); 40 //添加一个名为<root>的节点 41 XmlElement root = xmlDoc.CreateElement("root"); 42 //为<root>节点的属性 43 root.SetAttribute("student.Name", $"{student.Name}"); 44 root.SetAttribute("student.Age", $"{student.Age}"); 45 46 //添加一名为Name元素 47 XmlElement x1 = xmlDoc.CreateElement("Name"); 48 //InnerText:获取或设置节点及其所有子节点的串连值 49 x1.InnerText = $"{student.Name}"; 50 root.AppendChild(x1);//添加到<Zi>节点中 51 52 //添加一名为Age元素 53 XmlElement x2 = xmlDoc.CreateElement("Age"); 54 x2.InnerText = $"{student.Age}"; 55 root.AppendChild(x2); 56 57 //添加一名为Class元素 58 XmlElement x3 = xmlDoc.CreateElement("Class"); 59 x3.InnerText = "1702B"; 60 root.AppendChild(x3); 61 62 //添加到<User>节点中 63 User.AppendChild(root); 64 //保存好创建的XML文档 65 xmlDoc.Save(@"E:课程总练习MVCaXMLFile1.xml"); 66 67 Console.WriteLine(save_abc()); 68 69 70 Console.ReadKey(); 71 } 72 73 public static string save_abc() 74 { 75 string abc = System.IO.File.ReadAllText(@"E:课程总练习MVCaXMLFile1.xml"); 76 77 string str = "<Student><StudentNumber>123456</StudentNumber><StudentName>Hannes</StudentName></Student>"; 78 return abc; 79 } 80 } 81 } 82 83 84 85 using System; 86 using System.Collections.Generic; 87 using System.Linq; 88 using System.Text; 89 using System.Threading.Tasks; 90 91 namespace a 92 { 93 public class Student 94 { 95 public string Name { get; set; } 96 public int Age { get; set; } 97 } 98 }
- XML : 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
- 在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输
- 什么是可扩展标记语言?
可扩展标记语言是一种很像超文本标记语言的标记语言。
它的设计宗旨是传输数据,而不是显示数据。
它的标签没有被预定义。您需要自行定义标签。
它被设计为具有自我描述性。
它是W3C的推荐标准
- XML 是各种应用程序之间进行数据传输的最常用的工具
- 它极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。
- 它和超文本标记语言语法区别:超文本标记语言的标记不是所有的都需要成对出现,它则要求所有的标记必须成对出现;HTML标记不区分大小写,它则大小敏感,即区分大小写
- 可以在可扩展标记语言文件的内容包括几乎所有的万国码Unicode字符(以下例子使用本条例,以<?开头的文档序言部分标记不能使用此条例),元素和属性的名称也可以由非ascii字符组成
语法:
一、任何的起始标签都必须有一个结束标签。
二、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<百度百科词条/>。XML解析器会将其翻译成<百度百科词条></百度百科词条>。
三、标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如这是一串百度百科中的样例字符串。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。
四、所有的特性都必须有值。
五、所有的特性都必须在值的周围加上双引号
应用
XML在e-Larning管理中的应用
一、 兼容现有协议
二、 统一的管理数据存取格式
三、 不同应用系统间数据的共享和交互
四、 底层传输的数据更具可读性
五、 它和JSON都是一种数据交换格式
三个组成部分
- DTD DTD规定了文档的逻辑结构。它可定义文档的语法
- XSL XSL是用来规定XML文档样式的语言
- XLL XLL支持Web上已有的简单链接,而且将进一步扩展链接,包括终结死链接的间接链接及可从服务器中只查询某个元素的相关部分链接等