XML(一)
**数据存储:**变量 -> 数组 -> 对象 -> 对象数组 -> 集合 -> 文件操作I/O(持久化) -> XML
1. 理解XML概念和优势
**XML:**eXtensible Markup Language 可扩展的标记语言
**例如:**几乎没有提前定好的标签/标记/元素,你需要自己去编写一个,然后它就可以使用了。
**HTML:**HyperText Markup Language 超文本标记语言
例如:<h1></h1>
它的这些标记是提前定好的,你直接拿着用就可以实现某种效果。
标记语言:
<元素/标签></元素/标签>
<html>
<head></head>
<body></body>
</html>
作用:
1. 可以用来做程序的小型数据库。(例如:金山打字通存储的文章)
2. 可以作为数据交互使用。(例如:微信登录和微信支付,微信会和你通过XML数据进行交互)
3. 可以用来配置应用程序。
4. AJAX的基石。
2. 会编写格式良好的XML文档
<?xml version="1.0" encoding="UTF-8"?>
<!--
给上方的注释:
<?xml ?> 声明 用来指定本XML文件的一些信息,必须在第一行
属性:
version:标注版本信息
encoding:标注编码信息
-->
<!-- 标签/标记 -->
<!-- 双标签:开放标签 -->
<!-- 根标签:一个XML必须有且仅有一个根标签 -->
<books>
<!-- 图书信息 -->
<book>
<id>bk001</id>
<author>吴承恩</author>
<bookName>西游记</bookName>
<decription>一头猪、一只猴、一个乞丐、一匹老马、一个秃驴</decription>
</book>
<book>
<id>bk002</id>
<author>蒲松龄</author>
<bookName>聊斋</bookName>
<decription>鬼狐有性格,笑骂成文章</decription>
</book>
<!-- 双标签:闭合标签 -->
</books>
注意事项
- 每一个XML标签都应该有对应的结束。
- 要么就是双标签 要么就是自闭合标签。
- XML对大小写敏感,严格区分!
- XML的嵌套要正确,同级标签要对齐,下一级标签要注意缩进。
- XML的标签/元素名称 可以由字母、数字和符号组成,数字和.不能开头。
- XML名称不能包含空格!
- 否则会被解析成其他的内容。
- XML标签可以有多个属性,属性名推荐全部小写,属性值应该以""号包裹,属性值不允许出现> < " ’ . &等等。
3. 了解XML中的特殊字符的处理方式
因为有一些特殊的字符,在XML中本身就有特殊含义,所以我们需要以特别的方式来展示它们。
> > greater than
< < less than
“ "
' '
& &
<![CDATA[身高 < 175 身高>170]]>
4. 了解解析器概念
DOM:基于XML文档树结构
SAX:基于事件解析
DOM4J:优秀
5. 了解DOM树节点构造
DOM(Document Object Model)解析,会将XML内容 加载到内存中,并绘制对应的DOM树,DOM树中,我们将标签称为元素节点、将属性称为属性节点、将文本内容称为文本节点…
节点和元素的关系,节点是包含元素的。
DOM树:
<?xml version="1.0" encoding="UTF-8"?>
<phones>
<!-- CRUD -->
<!-- 手机信息 -->
<!-- 小米9 -->
<phone id="p001">
<brand>XiaoMi</brand>
<type>XiaoMi9</type>
<price>2999</price>
</phone>
<!-- 华为 -->
<phone id="p002">
<brand>HuaWei</brand>
<type>P20</type>
<price>3888</price>
</phone>
<!-- 一加 -->
<phone id="p003">
<brand>One Plus</brand>
<type>A7000</type>
<price>3599</price>
</phone>
</phones>