XML
xml概述
1.功能:用来存储数据,并且能够对数据进行增删改查的操作。
2.与HTML的区别:1)xml主要用来存储数据,而HTML主要用来展示数据;
2)xml的语法格式非常严格,HTML的语法格式非常松散;
3)xml标签名称全部都是自定义的,而HTML的标签是预定义的。
3.xml的基本格式:
<?xml version = '1.0'?>
<根标签>
<user id='1'>
<name>zhangsan</name>
<age>20</age>
<sex>male</sex>
</user>
<user id='2'>
<name>lisi</name>
<age>18</age>
<sex>female</sex>
</user>
</根标签>
xml约束
分类:1.DTD约束(比较简单,约束性较低) 2.Schema约束(约束性强,较为复杂)
基本组成部分:1.文档申明(必须写在第一行,并且前面不能有空格)
2.指令(结合CSS样式)
3.标签
4.属性
5.文本
DTD约束的两种定义方式:
1.外部引入(本地):<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
2.外部引入(网络):<!DOCTYPE 根标签名 PUBLIC “自定义文件名称 " dtd文件的URL">
xml解析
分类:1.DOM解析 2.SAX解析
操作方式和优缺点:
1.操作方式
DOM:一次性将整个文档加载进内存,然后在内存中形成DOM树结构,可以对其进行增删改查的操作。
SAX:逐行读取文档进内存,每读取完一行就释放一行。
2.优缺点
DOM:优点:能够对解析的文档进行增删改的操作。缺点:占用内存较大
SAX:优点:几乎不占内存。缺点:只能读取解析的文档。
Jsoup解析器(DOM解析)
常用的API
1.导包
2.Jsoup工具类
static Document parse(File in,String CharsetName) 解析本地HTML或者XML文件
static Document parse(URL url,int timeoutMillis) 解析网络HTML或者XML文件
static Document parse(String HTML) 解析HTML文件
3.Document类
Element getElementById(String id) Element getElementById(String id)
Elements getElementsByTag(String tagName)
Elements getElementsByAttribute(String key)
Elements getElementsByAttributeValue(String key, String value)
4.Element 类
String attr(String attributeKey) 根据元素属性获取属性值
String text() 根据元素获取所有子元素文本
String html() 根据元素获取文本,如果该元素下有子元素则只能获取子元素所有内容,包括标签
XPath解析HTML语法
1.需要导入Xpath的jar包如下:
方法
JXDocument jxDocument = new JXDocument(document); //获取对象
List<JXNode> jxNodes = jxDocument.selN("//student"); //解析指定格式的标签