409、Jsoup的快速查询---使用selector选择器

论坛 期权论坛 脚本     
匿名技术用户   2021-1-14 13:59   11   0

快速查询
如果要快速查询某个标签下的某个标签,按照上面的需要一步一步获取,不方便,就需要一如快速查询方式。
(1)、selector:选择器(类似CSS里面的选择器)
* 使用方法:Elements select(String cssQuery)
* 语法:参考Jsoup中Selector类中定义的语法
(2)、XPath:Xpath是XML路径语言,它是一种用来确定XML(标准通用标记语言的子类)文档中某部分位置的语言
* 使用Jsoup的Xpath需要额外导入jar包,JsoupXpath-0.3.2.jar
* 查询w3cshool参考手册,使用xpath的语法完成查询。
* 注意:XPath和Jsoup没有直接关系,是间接使用

举例:

student4.xml

<?xml version="1.0" encoding="UTF-8" ?>
<students>
<student number="nu_001">
    <name id="name_id01">
        我叫
        <xing>张</xing>
        <ming>三</ming>
    </name>
    <age>21</age>
    <sex>male</sex>
</student>
<student number="nu_002">
    <name> 李四</name>
    <age>20</age>
    <sex>male</sex>
</student>
<student number="nu_003">
    <name> 王五</name>
    <age>22</age>
    <sex>male</sex>
</student>
</students>

JsoupDemo05.java

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;

public class JsoupDemo05 {
    public static void main(String[] args) throws IOException {
        //2.获取Document对象,根据xml文档获取
        //2.1获取student.xml的path
        String path = JsoupDemo05.class.getClassLoader().getResource("student4.xml").getPath();
        Document doc = Jsoup.parse(new File(path),"UTF-8");

        //3、查询name标签
        Elements select = doc.select("name");
        System.out.println(select);

        System.out.println("=============================================================");

        //4、查询id值为具体某个的元素
        Elements select1 = doc.select("#name_id01");
        System.out.println(select1);

        System.out.println("=============================================================");
        //5.获取number属性值为nu_001的student标签的age标签
        //5.1获取number属性值为nu_001的student标签
        Elements select2 = doc.select("student[number='nu_001']");
        System.out.println(select2);
        System.out.println("=============================================================");
        //5.2获取number属性值为nu_001的student标签的age标签
        Elements select3 = doc.select("student[number='nu_001']>age");
        System.out.println(select3);

    }
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP