07 XML知识点--学习笔记
1.XML概念:Extensible Markup Language 可扩展标记语言
可扩展:标签都是自定义的。 <user> <student>
功能
			  * 存储数据
				    1. 配置文件
				    2. 在网络中传输
xml与html的区别
			  (1) xml标签都是自定义的,html标签是预定义。
			  (2)xml的语法严格,html语法松散
			  (3)xml是存储数据的,html是展示数据
2.XML 语法:
(1)基本语法:
			  1. xml文档的后缀名 .xml
			  2. xml第一行必须定义为文档声明
			  3. xml文档中有且仅有一个根标签
			  4. 属性值必须使用引号(单双都可)引起来
			  5. 标签必须正确关闭
			  6. xml标签名称区分大小写
(2)组成部分:
			<1>文档声明
				  1. 格式:<?xml 属性列表 ?>
				  2. 属性列表:
					    * version:版本号,必须的属性
					    * encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
					    * standalone:是否独立
						  * 取值:
							    * yes:不依赖其他文件
							    * no:依赖其他文件
			<2>指令(了解):结合css的
				* <?xml-stylesheet type="text/css" href="a.css" ?>
			<3>标签:标签名称自定义的
  规则:
					    * 名称可以包含字母、数字以及其他的字符 
					    * 名称不能以数字或者标点符号开始 
					    * 名称不能以字母 xml(或者 XML、Xml 等等)开始 
					    * 名称不能包含空格
<4>属性:
				id属性值唯一
			<5>文本:
CDATA区:在该区域中的数据会被原样展示
格式:  <![CDATA[ 数据 ]]>
3.约束:规定xml文档的书写规则
(1)作为框架的使用者(程序员):
				  <1>能够在xml中引入约束文档
				  <2>能够简单的读懂约束文档
(2)分类:
				(1)DTD:一种简单的约束技术
				(2)Schema:一种复杂的约束技术
(3) 解析:操作xml文档,将文档中的数据读取到内存中
操作xml文档
			  1. 解析(读取):将文档中的数据读取到内存中
			  2. 写入:将内存中的数据保存到xml文档中。持久化的存储
解析xml的方式:
			  1. DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树
				    * 优点:操作方便,可以对文档进行CRUD的所有操作
				    * 缺点:占内存
			  2. SAX:逐行读取,基于事件驱动的。
				    * 优点:不占内存。
				    * 缺点:只能读取,不能增删改
xml常见的解析器:
			  1. JAXP:sun公司提供的解析器,支持dom和sax两种思想
			  2. DOM4J:一款非常优秀的解析器
			  3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
			  4. PULL:Android操作系统内置的解析器,sax方式的。
Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
Jsoup 快速入门:
步骤:
					  1. 导入jar包
					  2. 获取Document对象
					  3. 获取对应的标签Element对象
					  4. 获取数据
案例:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import java.io.File;
import java.io.IOException; /**
* Json快速入门
*/
public class JSoupDemo1 {
public static void main(String[] args) throws IOException {
//1.获取document对象,根据xml文档
//1.1获取student.xml的path
String path = JSoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
//1.2 解析xml文档,加载进内存,获取dom
Document document = Jsoup.parse(new File(path), "utf-8");
//2.获取元素对象
Elements elements = document.getElementsByTag("name");
System.out.println(elements.size());
//2.1获取第一个name的element对象
Element element = elements.get(0);
String name = element.text();
System.out.println(name); }
}
控制台输出:

对象的使用:
(1)Jsoup工具类,可以解析html或xml文档,返回Document
				  * parse:解析html或xml文档,返回Document
					  * parse(File in, String charsetName):解析xml或html文件的。
					  * parse(String html):解析xml或html字符串
					  * parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
			(2) Document:文档对象。代表内存中的dom树
				* 获取Element对象
					  * getElementById(String id):根据id属性值获取唯一的element对象
					  * getElementsByTag(String tagName):根据标签名称获取元素对象集合
					  * getElementsByAttribute(String key):根据属性名称获取元素对象集合
					  * getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合
(3) Elements:元素Element对象的集合。可以当做 ArrayList<Element>来使用
			(4)Element:元素对象
				  1. 获取子元素对象
					    * getElementById(String id):根据id属性值获取唯一的element对象
					    * getElementsByTag(String tagName):根据标签名称获取元素对象集合
					    * getElementsByAttribute(String key):根据属性名称获取元素对象集合
					    * getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合
  2. 获取属性值
					    * String attr(String key):根据属性名称获取属性值
				  3. 获取文本内容
					    * String text():获取文本内容
					    * String html():获取标签体的所有内容(包括字标签的字符串内容)
			(5)Node:节点对象
				* 是Document和Element的父类
07 XML知识点--学习笔记的更多相关文章
- PHP操作XML文件学习笔记
		原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ... 
- Java后端高频知识点学习笔记1---Java基础
		Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ... 
- xml基础学习笔记04
		今天继续xml学习,主要是:SimpleXML快速解析文档.xml与数组相互转换 .博客中只是简单的做一个学习记录.积累.更加详细的使用方法,可以查看php手册 1.SimpleXML快速解析文档 前 ... 
- xml基础学习笔记05
		Xpath快速解析 如题一样,本篇主要说说Xpath快速查找XML文档 * Xpatn.Xquery,是专门用来查询xml的语言 * 查询xml非常快 Xpatn.Xquery,是专门用来 ... 
- xml基础学习笔记03
		继续上篇xml学习笔记,坚持.坚持.再坚持啊.... 本篇主要记录: 35.XML节点的删除与修改 36集.用XML制作RSS订阅源 <?php /* 笔记: 35.XML节点的删除与修改 使用 ... 
- xml基础学习笔记01
		注意:刚刚看了网上对于XML中的标签,节点和元素?到底应该怎么表述?起初我也有这个疑惑,现在我的想法是:下面出现node的应称作节点,节点对象.element应称作元素,毕竟这更符合英文的本意.至于标 ... 
- xml基础学习笔记02
		接着上次的xml笔记01 ,记录一下如何DOM创建xml 一.由于没有特意来写博客,都是在程序中用注释的方法记录笔记,整理过来难免格式错误,排版什么的,大家好事看不懂就仔细看给出的代码加上注释,一定会 ... 
- Struts2知识点学习笔记
		写给自己的话 好记性不如烂笔头,不可能说看了一遍视频就可以完全掌握的.留下这篇笔记,便于今后的复习吧. 1. 访问ServletAPI 访问ServletAPI(response,request,)的 ... 
- xml增强学习笔记
		2 Dom4j修改xml文档 2.1 写出内容到xml文档 XMLWriter writer = new XMLWriter(OutputStream, OutputForamt) wirter.wr ... 
随机推荐
- python的readline() 和readlines()
			.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样..readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python ... 
- Statistical Methods for Machine Learning
			机器学习中的统计学方法. 从机器学习的核心视角来看,优化(optimization)和统计(statistics)是其最最重要的两项支撑技术.统计的方法可以用来机器学习,比如:聚类.贝叶斯等等,当然机 ... 
- C/C++中double类型的比较
			由于double浮点数的精度问题,所以在比较大小的时候,不能像int整数型那样,直接if(a==b),if(a<b),if(a>b) 要使用一个精度EPS: ; //一般这样子就够,但有时 ... 
- 72: libreoj #10147 区间dp
			$des$ 将 n 堆石子绕圆形操场排放,现要将石子有序地合并成一堆.规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分. 请编写一个程序,读入堆数 nnn 及每堆的石子数 ... 
- 【UVA11134】传说中的车
			横纵坐标互不影响,所以问题转化到一维:在n个区间中每个区间选一个数,n个数都被选一次 将区间按右端点排序,枚举区间,每个区间选最靠左的没被选过的点 #include<algorithm> ... 
- Eclipse Maven问题小记
			Eclipse Maven Web工程报错:java.lang.ClassNotFoundException: ContextLoaderListener 原因:打包项目时没有把相关Maven依赖包打 ... 
- sublime 添加到右键菜单
- fillter根据value来匹配字段
			字段对应 let cashBackState = { 'WAIT_FIVE': '满5单可返现', 'FINISHED': '已返现' } filters: { cashBackStateFilter ... 
- Jmeter(四十一)_图片爬虫
			今天教大家用元件组合,做一个网页图片爬虫. 需要用到的元件:循环控制器+计数器+xpath提前器+函数嵌套+beanshell代码 首先我们确定一下要爬取的图片网站:https://dp.pconli ... 
- Java自己实现HTTP服务器来理解GET和POST区别
			GET请求和POST请求有什么区别?GET请求的参数在URL的问号后面显示,而POST参数不在URL上:POST可以比GET请求更大的数据…一般的回答都是这样. 但是作为一个高端大气上档次的程序员 ... 
