XML(可扩展标记语言)
- XML:eXtensible Markup Language
- 什么是标记语言?什么是标记?
- 标记(markup):文档中任何不想被打印输出的部分(不是真正的文档的内容,联想读书时做的“读书笔记”,在旁边写的注解等。)注解是注解,实际内容是实际内容。
- 标记的作用:传递了关于文档本身以外的额外信息。比如:标记文档的某部分该如何显示,某部分是什么意思等。重在数据,标记只是为了说明数据的含义而已。
- 常见的标记语言:SGML、HTML、XML
- HTML与XML的区别与联系?
- Xml作用与应用场合:xml数据存储,html数据展示。
- 语法、是否有预定义标签、各自的作用与意义
- 相关术语:标签、节点、根节点、元素、子元素、后代元素、属性、嵌套、命名空间、字符数据(CDATA)
XML 基础(extensible markup language)
- 仕么是XML,学它有什么用。优点:容易读懂:格式标准任何语言都内置了XML分析引繁,不用单独进行文件分析引擎的编写。
- Xml就是用一种格式化的方式来存储数据,并且是文本文件任何时候我们都能很容易的用记事本打开。与Excel、Word不一样。
- 举例:分析出一个xml格式的文件、分析出一个Excel文件。net程序中的一些配置文件app.config、web.config文件都是xm文件。
- Ofice2007的文件格式docx、xlsx、pptx都是xml.先改成rar文件然后解压。
- XML语法规范:标签(Tag)、嵌套(Nest)、属性。标签要闭合,属性值要用
""包围,标签可以互相嵌套 - XML树,父节点、子节点、兄弟节点(siblings)
- XML和HTML的区别:
- 有且只能有一个根元素。
- XML中元素必须关闭;
- XML中元素的属性值必须用引号;
- XML大小写敏感(CaseSenstive)
- 符合XML规范的HTML叫做“符合XHTML标准”。开发的网站必须通过W3C验证。
- xml编写完成以后可以用浏览器来查着,如果写错了浏览器会提示。如果明明没措,浏览器还是提示错娱,则可能是文件编码问题。
Linq To XML:写
- 读写XML有很多技术:
Dom [XmlDocument、XDocument](文档对象模型,将整个xml加载到内存中,然后操作);Sax(事件驱动,.net中使用XmlReader(XmlTextReader)、XmlWriter(XmlTextWriter)
来替代)等,还有高级的读写技术;XmlSerializer(xml序列化,需要先定义类);Linq To XML(SystemXml.Linq),用到的就是Xdocument,Xelement等等,XmlSerializer要求对每种不同的文件都定义一套类,很麻烦,而Linq To XML则不需要单独创建类,当然更底层一些,代码比XmlSerializer多,灵活性更高。SystemXml下的类是2.0及之前操作xml推荐的,现在很多入也仍然在用这个namespace下的类,这个namespace下的类和Linq To XML非常相似,因此不用单独学核心类XElement,一个XElement表示一个元素,new XEiement("order"),创建一个名学为Order的标签,调用Add增加子元素,也是XElement对象,和TreeView一样。
- 想得到字符串怎么办?
ToString - 调用
XElement的Save方法将xml内容保存在Writer中 - 创建xml的时候可以用
XDocument也可以不用。(直接用XElement)
实例

▲ 界面
1 | using System; |
写入的 school.xml 文件如下:
1 |
|
用 List 集合之循环添加
1 | using System; |
写入的 List.xml文件内容:
1 |
|
以上的方式是以编程的方式来实现的,写起来比较麻烦。
通过xmlDocument方式写入xml文件(推荐)
需添加 using System.Xml.Linq; 命名空间。
1 | using System; |
输出的listNew.xml文件内容:
1 |
|
可见,是一样的。
xml 写入总结
写入Xm1的两种方式:
XmlDocument类,标准的Dom方式。
1
2
3kmlDocument document = new XmlDocument();
document.CreateElement();
xxxxxxxx.CreateAttribute();XDocument类
1
2XElement x = new xxx();
...Add ();
读取Xml
- 遍历所有节点元素,分别读取
- 根据节点名称,或者是id等等一些元素,快速获取某个节点。|
参考:
1.link-01 // 通过XmlDocument与XDocument方式写入Xml