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