xml 解析系列dom查询 的 selector 与 XPath

java :xml /html 的解析
可分为 dom 与 SAX 两种
dom ======= 是移动端 ip 的 : 一次加载整个 文档 进入 内存 :
获取Dom树 : 进行面向对象 的 crud 增删改查 正如 他的特点 的双面性 : 占用的内存 相对于 移动端 就 大了
SAX======= 是移动端的 : 只可读 不可 操作 : 特点 占用内存 小 逐行 读取 即释放内存
今天演示 的是 : dom 的 查询的简单操作 :
使用 工具 技术 : Jsoup (杰赛普)
描述 流程 的 技术
思路 :怎样获取 demo 里 文件 : 使用反射 :
当前本类获取 .class . getClassLoader().getSource(“目标文件”).getPath(); === 返回一个 String path
Jsoup.parse(new File(path));=== 返回 Document 对象
使用Document对象 来获取 有3种 获取方式 ;
nwe File() 字符串 url 3种方式 :
本次 使用的是 : new File(path,“utf-8” ) 并指定字符集 ;
查询数据的有 2种:
1:selector 2:XPath
分别 演示一下呢 : 这俩种 的 demo :
本次 均 使用的是 jar 包 的方式 : ----- 当然 有 maven 使用就会方便多了 ;
开发工具 idea ----- 创建module
创建一个 libs 的 包 准备好
Jsoup :vision版本 --1.11.2
XPath :vision版本 : 0.3.2
流程 : 思路 是 :
-----> 找到文件:反射 当前类名.class字节码 .getClassLoader()类加载器.getResource(“文件名称”).getPath()文件路径;
-----> 加载文件 (工具对象.parse()获取Document —( 3种 重载: File ,字符串,URL)
-----> 获取元素 Element(—3种:Tag标签 ,属性Attribute,id)
xml 解析系列dom查询 的 selector 与 XPath_第1张图片
Jsoup.parse()加载 ----
@加载文档进内存的3种方法: 比如 jsoup.parse() 就重载了3种方法
1:file :
. 2:字符串: 了解
3:url : 统一资源定位符 html 里常用 网络路径来获取 的方式
@@获取document 的3种方式 ---- 首先要明白: document 继承 Element :获取 任何的 Element
– 1:标签Tag 2:属性Attribute 3:id ===其中 Attribute 用于html id 用于xml
1: 标签 名称 :Tag
getElementByTag(String tagName):
2:@@@ html用的多 属性 名称 :Attribute (string key) Attributes(string key, string value)
getElementbyAttribute(string key) getElementAttributeValues(String key,String value)
3: xml 用的多 getElementById(String id) xml 的id 不是真正的id
@@ Element : 获取的子的元素 局限于 子元素
获取子元素 对象 :

  1. 获取属性值
    • String attr(String key):根据属性名称获取属性值
  2. 获取文本内容
    • String text():获取所有字标签的纯文本内容
    • String html():获取标签体的所有内容(包括子标签的标签和文本内容)

====== 快速查询的方式 : 有2种 1:选择器 selector 2:Xpath

selector: 选择器 Elements select(String cssQuery);

用到的原理 是 : Document extends继承 Element
参考 select 类 里的 方法

Xpath 应用 的 是 :
工具类的 支持 : Jsoup dom4j
流程 :
1: 获取 解析文件的 path :
1: 反射 —>2: Document 对象 :jsoup.parse()
3:JXDocument对象 来进行
— 结合Xpath 的语法 查询 : 原理 以路径来 获取 文件夹里文件
xml 解析系列dom查询 的 selector 与 XPath_第2张图片
3:JXDocument对象 来进行
— 结合Xpath 的语法 查询 : 原理 以路径来 获取 文件夹里文件
查 所有 的 student 标签
— .selN("//studenet"); 标签 的 内容
List jxNodes2 = jxDocument.selN("//student/name");
— 查 student标签下带有id属性的name标签
List jxNodes3 = jxDocument.selN("//student/name[@id]");
— .查 student标签下带有id属性的name标签 并且id属性值为itcast
List jxNodes4 = jxDocument .selN("//student/name[@id=‘itcast’]");

你可能感兴趣的:(javaweb基础)