Java Web
2021-10-14 10:46:14 14 举报
AI智能生成
Java Web
作者其他创作
大纲/内容
HTTP
JSP/JSTL
数据库
MySql
redis
request/response
前端基础
HTML
CSS
JavaScript
JQuery
AJAX
三大组件
Servlet
Filter
Listener
XML
1. 概念
概念:Extensible Markup Language 可扩展标记语言
可自定义标签
可自定义标签
2. 语法
基本语法:
1. xml文档的后缀名 .xml
2. xml第一行必须定义为文档声明(第一行不能空行)
3. xml文档中有且仅有一个根标签
4. 属性值必须使用引号(单双都可)引起来
5. 标签必须正确关闭
6. xml标签名称区分大小写
2. xml第一行必须定义为文档声明(第一行不能空行)
3. xml文档中有且仅有一个根标签
4. 属性值必须使用引号(单双都可)引起来
5. 标签必须正确关闭
6. xml标签名称区分大小写
约束
规定xml文档的书写规则
DTD
例子:
<!ELEMENT students (student*) > students为根标签,students里只能出现student标签,*代表无数次
<!ELEMENT student (name,age,sex)> student标签里只能出现name,age,sex,次数为1且顺序唯一
<!ELEMENT name (#PCDATA)> #PCDATA字符串类型
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED> 设置number为student的属性,ID指该属性唯一且属性值不能以数字开头,#REQUIRED指该属性是必须的
<!ELEMENT students (student*) > students为根标签,students里只能出现student标签,*代表无数次
<!ELEMENT student (name,age,sex)> student标签里只能出现name,age,sex,次数为1且顺序唯一
<!ELEMENT name (#PCDATA)> #PCDATA字符串类型
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED> 设置number为student的属性,ID指该属性唯一且属性值不能以数字开头,#REQUIRED指该属性是必须的
引入dtd文档到xml文档方式
外部dtd
将约束的规则定义在外部的dtd文件中
本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
<student number="itcast_0001">
<name>tom</name>
<age>18</age>
<sex>male</sex>
</student>
</students>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
<student number="itcast_0001">
<name>tom</name>
<age>18</age>
<sex>male</sex>
</student>
</students>
网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字(随便起)" "dtd文件的位置URL">
内部dtd(不常用)
将约束规则定义在xml文档中
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE students [
<!ELEMENT students (student*) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
]>
<students>
<student number="itcast_0001">
<name>tom</name>
<age>18</age>
<sex>male</sex>
</student>
</students>
<!DOCTYPE students [
<!ELEMENT students (student*) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
]>
<students>
<student number="itcast_0001">
<name>tom</name>
<age>18</age>
<sex>male</sex>
</student>
</students>
Schema(用于框架)
约束文件为xsd文件
引入
1.填写xml文档的根标签名称
2.引入xsi前缀
xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"
3.引入xsd文件命名空间
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
4.为每一个xsd约束声明一个前缀,作为标识
什么都不写默认空前缀
xmlns="http://www.itcast.cn/xml"
xmlns="http://www.itcast.cn/xml"
a标识,使用任何标签都要引入这个a前缀
xmlns:a ="http://www.itcast.cn/xml"
xmlns:a ="http://www.itcast.cn/xml"
<a:student number="heima_0001">
<a:name>tom</a:name>
<a:age>18</a:age>
<a:sex>male</a:sex>
</a:student>
<a:name>tom</a:name>
<a:age>18</a:age>
<a:sex>male</a:sex>
</a:student>
例子:两个约束文档
<a:students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.aaa.cn/xml student1.xsd
http://www.bbb.cn/xml student2.xsd" 两个约束文档
xmlns:a="http://www.itcast.cn/xml"
xmlns:b="http://www.itcast.cn/xml"
>
<a:student number="heima_0001">
<a:name>tom</a:name>
<a:age>18</a:age>
<a:sex>male</a:sex>
</a:student>
</a:students>
xsi:schemaLocation="
http://www.aaa.cn/xml student1.xsd
http://www.bbb.cn/xml student2.xsd" 两个约束文档
xmlns:a="http://www.itcast.cn/xml"
xmlns:b="http://www.itcast.cn/xml"
>
<a:student number="heima_0001">
<a:name>tom</a:name>
<a:age>18</a:age>
<a:sex>male</a:sex>
</a:student>
</a:students>
3. 解析
两种解析思想
DOM思想
将标记语言文档一次性加载进内存,在内存中形成一颗dom树
优点:操作方便,可以对文档进行CRUD的所有操作
缺点:树形结构比较占内存
主要应用于服务器端
SAX思想
逐行读取,基于事件驱动
优点:不占内存
缺点:只能读取,不能增删改
主要应用于移动端(内存小)
常见解析器
1. JAXP:sun公司提供的解析器,支持dom和sax两种思想(不使用)
2. DOM4J:一款非常优秀的解析器
3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。
它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
4. PULL:Android操作系统内置的解析器,sax方式的。
cookie/session
0 条评论
下一页