可扩展标记语言,可扩展:标签都是自定义的。
与HTML区别
xml标签自定义,HTML预定义
语法严格,语法松散
存储数据,展示数据
功能
存储数据:1.配置文件 2. 在网络中传输
语法
1.基本语法:
第一行必须定义为文档声明<?xml version='1.0' ?>
后缀名。xml
文档中有且仅有一个根标签
属性值必须使用引号(单双都行)引起来
标签必须正确关闭
标签名称区分大小写
2.组成部分
- 文档声明
格式:<?xml 属性列表 ?>
属性列表:version:版本号,必须的 encoding:编码方式,告知解析引擎当前文档使用的字符集,默认ISO-8859-1。gbk能用中文。是否独立:standalone:取值yes no 是否依赖其他文件 - 指令(了解)结合CSS的
- 标签:名称是自定义的,命名规则:可有字母数字等,不宜数字标点开始不含空格不能以xml开始
- 属性:id属性值唯一
- 文本:CDATA区:该区域内容会被原样展示<![CDATA[内容]]>
- 约束:规定xml文档的书写规则
作为框架的使用者(程序员
1.能够再xml中引入约束文档 - 能够简单读懂约束文档
分类:1.DTD:简单 2.schema:复杂
引入DTD文档到xml文档中:内部DTD,外部DTD
本地:< !DOCTYPE 跟标签名 SYSTEM "dtd文件的位置“ > (尖括号前后是没有空格的)
网络:< !DOCTYPE 跟标签名 PUBLIC “dtd文件名” "dtd文件的位置URL“ >
schema .xsd
xml常见的解析器:JAXP、DOM4J优秀、Jsoup:HTML解析器、pull
Jsoup:
Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。
快速入门:步骤1. 导入jar包 2. 获取Document对象 3.获取对应的标签element对象 4. 获取数据
对象的使用
- Jsoup:工具类,可以解析HTML或xml文档,返回Document
parse(File in,String charsetName):解析xml或html文件的
parse(String html):解析xml或html字符串
parse(URL url,int timeoutMillis):通过网络路径获取指定的html或xml文档对象 - Document:文档对象。代表内存中的dom树
获取element对象:
getElementsById(String id)根据id属性值获取唯一属性值
getElementsByTag(String tagName)根据标签名称获取元素对象集合
getElementsByAttribute(String key)根据属性名称获取元素对象集合
getElementsByAttributeValue(String key,String value)根据对应的属性名和属性值获取元素队形集合 - Elements:元素Element对象的集合。可以当作ArrayList< Element >来使用
- Element:元素对象
- 获取子元素对象
getElementsById(String id)根据id属性值获取唯一属性值
getElementsByTag(String tagName)根据标签名称获取元素对象集合
getElementsByAttribute(String key)根据属性名称获取元素对象集合
getElementsByAttributeValue(String key,String value)根据对应的属性名和属性值获取元素队形集合 - 获取属性值
String attr(String key) - 获取文本内容
Sring text():获取文本内容
Stringhtml():获取标签体的所有内容(包括子标签的字符串内容)
- 获取子元素对象
- Node:节点对象
是Document和Element的父类
快捷查询方法
- selector:选择器
使用:Elements select(String cssQuery)
语法:参考selector类中定义的语法 - Xpath:XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
使用Jsoup的XPath需要额外导入jar包,查询w3cshool参考手册,语法
XML与HTML解析:Jsoup与数据提取
本文介绍了XML与HTML的区别,如XML的自定义标签和严格的语法,主要用作数据存储,而HTML则用于展示数据。重点讨论了Java的HTML解析库Jsoup,包括其快速解析HTML文档的方法,如Document对象、Element对象的操作,以及通过选择器和XPath进行数据提取。此外,还提及了XML的约束和解析器如JAXP、DOM4J。
2215

被折叠的 条评论
为什么被折叠?



