I. XML的概述和快速入门
1、XML概述
A.功能
a.存储数据
b.网络传输
B.HTML和XML的区别:
a.标签(XML是自定义,HTML是预定义)
b.语法(XML语法校验严格,HTML语法校验松散)
c.功能(XML用于存储数据,HTML用于展示数据)
2、快速入门
A.基础语法:
a.文件的后缀是 xml
b.文档声明必须在第一行
c.根标签只能有一个
d.区分大小写
B.入门的代码
<?xml version='1.0'?>
<根标签>
<子标签>
<name></name>
<age></age>
<gender></gender>
</英雄>
</根标签>
II. XML的约束(dtd和schema) 了解
1、基础组成部分
A.文档声明(写在XML代码的第一行)
B.指令(了解:结合css的)
C.标签(标签名称自定义的)
D.属性(标签上面定义的等于号的值)
E.文本(CDATA区,原样展示)
F.注释( <!--和HTML注释相同-->)
2、约束
A.含义:
规定XML文档的书写规范
("因为XML文档的标签是可以任意写的,后期XML需要交给指定的框架去解析,如果随便写,解析失败")
B.常见的两个约束
a. DTD 约束
b. Schema 约束
3、DTD 约束
A.外部引入(本地)
<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
B.外部引入(网络)
<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
C.代码位置
写在文档声明的下面一行.根标签的上面一行.(文档声明和根标签中间)
4、Schema 约束
A.例如:
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.itcast.cn/xml"
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd">
II.XML的解析 Jsoup
1、常见的两种解析思想
A. DOM
a.原理:
把整个文档一次性全部加载的到内存当中,形成DOM树,可以进行"增,删,改,查"操作
b.优缺点:
优点: 可以进行增删改查
缺点: 占内存,容易出现内存溢出
B. SAX
a.原理:
逐行读取数据,采用事件监听机制.
b.优缺点:
优点: 不占内存,无论文档多大,都可以读取
缺点: 只能读,不能 增删改 "写"
2、常见的解析器
A. JAXP : sun公司的(使用不多)
B. Dom4j : 底层是 DOM 解析(可以进行增删改查)
C. Jsoup : 底层是 DOM 解析(可以进行增删改查)
D. Pull : 底层是 SAX 解析(只能进行读取)
3、常用的API (jsoup-1.11.2-javadoc -> index.html -> FRAMES -> org.jsoup -> Jsoup)
A. Jsoup 工具类
a. static Document parse(String html)
b. static Document parse(File in, String charsetName)
c. static Document parse(URL url, int timeoutMillis)
B. Document 类
a. Element getElementById(String id)
b. Elements getElementsByTag(String tagName)
c. Elements getElementsByAttribute(String key)
d. Elements getElementsByAttributeValue(String key, String value)
C. Element 类
a. String attr(String attributeKey)
b. String text()
c. String html()
4、常用API(解析HTML语法)
A.选择器
a.方法
Elements select(String cssQuery)
b.位置
Class Element -> select方法 -> See Also: Selector
B.作用
对应有些HTML文件,层级结构比较复杂的情况,可以使用选择器
5、常用API(解析HTML语法)
A.选择器 Xpath (需要导入jar包"xpath"和"jsoup")
a.方法
JXDocument jxDocument = new JXDocument(document); //获取对象
List<JXNode> jxNodes = jxDocument.selN("//student"); //解析指定格式的标签
b.位置
w3cschool -> XML -> Xpath语法