JavaWebDay12_XML的概述和快速入门,XML的约束,XML的解析 Jsoup

JavaWebDay12

课程大纲
1、XML的概述和快速入门
2、XML的约束(dtd和schema)  了解
3、XML的解析 Jsoup

第一章 XML的概述和快速入门

1、XML概述
A.功能
a.存储数据(用于配置文件的存储)
b.网络传输(使用在WebService当中)
B.HTML和XML的区别:
a.标签(XML是自定义,HTML是预定义)
b.语法(XML语法校验严格,HTML语法校验松散)
c.功能(XML用于存储数据,HTML用于展示数据)
2、快速入门
A.基础语法
a.文件的后缀是 xml
b.文档声明必须在第一行
c.根标签只能有一个
d.区分大小写
B.入门的代码
<?xml version='1.0'?>
<根标签>
	<英雄>
		<姓名>盖伦</姓名>
		<性别></性别>
		<职业>坦克</职业>
	</英雄>
	<英雄>
		<姓名>光辉</姓名>
		<性别></性别>
		<职业>法师</职业>
	</英雄>
	<英雄>
		<姓名>艾希</姓名>
		<性别></性别>
		<职业>射手</职业>
	</英雄>
</根标签>

第二章 XML的约束(dtd和schema)

1、基础组成部分
A.文档声明(写在XML代码的第一行)
B.指令(了解:结合css的)
C.标签(标签名称自定义的)
D.属性(标签上面定义的等于号的值)
E.文本(CDATA区,原样展示)
F.注释(和HTML注释相同)
2、约束
A.含义: 
	规定XML文档的书写规范
	("因为XML文档的标签是可以任意写的,后期XML需要交给指定的框架去解析,如果随便写,解析失败")
	
B.要求:
	a.学会引入 约束文档
	b.学会简单读一下约束文档
	
C.常见的两个约束
	a. DTD 约束
	b. Schema 约束
3、DTD 约束
A.外部引入(本地)  
	<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
	
B.外部引入(网络)
	<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
	
C.代码位置
	写在文档声明的下面一行.根标签的上面一行.(文档声明和根标签中间)
4、Schema 约束
例如:
<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">

第三章 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、快速入门
A.准备工作:
	需要导入jar包
	找到XML文件的File对象
	
B.编写代码步骤:
	a.获取到 Document 的对象 //Document doc = Jsoup.parse(xmlFile, "UTF-8");
	b.获取到 Elements 的对象 //Elements es = doc.getElementsByTag("姓名");
	c.获取到 Element 的对象  //Element element = es.get(2);
	d.获取具体的数据值		 //String name = element.text();
4、常用的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) //解析XML文件
	c. static Document parse(URL url, int timeoutMillis) //解析网络资源 HTML
	
B. Document 类
	a. Element	getElementById(String id) //通过ID获取元素对象
	b. Elements	getElementsByTag(String tagName) //通过标签名称,获取元素集(集合)的对象
	c. Elements	getElementsByAttribute(String key) //通过属性名称获取,元素集(集合)的对象
	d. Elements	getElementsByAttributeValue(String key, String value) 
    					//通过属性名称获取,元素集(集合)的对象,value是对应的key数据值
	
C. Element 类
	a. String	attr(String attributeKey) //通过属性名称,获取属性值
	b. String	text() //获取标签当中所有的文本信息
	c. String	html() //获取标签当中所有的HTML标签的字符串形式
5、常用API

(解析HTML语法)

A.选择器
	a.方法 
		Elements select(String cssQuery) //只能获取到元素,获取不到属性
	b.位置
		Class Element -> select方法 -> See Also: Selector
		
B.作用
	对应有些HTML文件,层级结构比较复杂的情况,可以使用选择器
6、常用API

(解析HTML语法)

A.选择器 Xpath (需要导入jar包"xpath""jsoup")
	a.方法
		JXDocument jxDocument = new JXDocument(document);  //获取对象
		List<JXNode> jxNodes = jxDocument.selN("//student"); //解析指定格式的标签
	b.位置
		w3cschool -> XML -> Xpath语法
	c.简单的语法规则:
		1.查找元素信息:  //元素名称
		2.查找属性信息:  //@属性名称
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值