673~674 Jsoup根据选择器查询 AND Jsoup根据Xpath查询

Jsoup根据选择器查询

  快捷查询方式

    1.selector:选择器

      使用的方法:Ele'ments select(String  CssQuery)

      语法:参考selector类中定义的语法

package cn.itcast.xml.jsoup;
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 {
        //获取Document对象,根据xml文档来获取
        String path = jsoupDemo05.class.getClassLoader().getResource("student.xml").getPath();
        //获取Document对象
        Document document = Jsoup.parse(new File(path), "utf-8");

        //查询name标签
        Elements elements = document.select("name");
        System.out.println(elements);
        System.out.println("===============");
        //查询id值为1的元素
        Elements elements1 = document.select("#1");
        System.out.println(elements1);
        System.out.println("===============");
        //获取student标签并且number属性值为zq_01的标签
        Elements elements2 = document.select("student[number='zq_01']");
        System.out.println(elements2);
        System.out.println("===============");
        //获取student标签并且number属性值为zq_01的age子标签
        Elements elements3 = document.select("student[number='zq_01'] >age");
        System.out.println(elements3);
        System.out.println("===============");
    }
}

 

    2.XPath:XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
      xpath即为XML路径语言,它是一种用来确定XL(标准通用标记语言的子集)文档中某部分位置的语言

        使用Jsoup的XPath需要额外导入jar包因为他是一个独立的

        查询w3cshool参考手册,使用 xpath的语法完成查询

 

package cn.itcast.xml.jsoup;
import cn.wanghaomiao.xpath.exception.XpathSyntaxErrorException;
import cn.wanghaomiao.xpath.model.JXDocument;
import cn.wanghaomiao.xpath.model.JXNode;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.util.List;

/*
XPath查询
*/
public class jsoupDemo06 {
    public static void main(String[] args) throws IOException, XpathSyntaxErrorException {
        //获取Document对象,根据xml文档来获取
        String path = jsoupDemo06.class.getClassLoader().getResource("student.xml").getPath();
        //获取Document对象
        Document document = Jsoup.parse(new File(path), "utf-8");

        //根据document对象,创建JXDocument对象
        JXDocument jxDocument = new JXDocument(document);
        //结合xpath语法查询
        //查询所有的student标签
        List<JXNode> jxNodes = jxDocument.selN("//student");
        for (JXNode jxNode : jxNodes) {
            System.out.println(jxNode);
        }
        System.out.println("=================");

        //查询所有的student标签下的name标签
        List<JXNode> jxNodes1 = jxDocument.selN("//student/name");
        for (JXNode jxNode1 : jxNodes1) {
            System.out.println(jxNode1);
        }
        System.out.println("=================");

        //查询student标签下带有id属性的name标签
        List<JXNode> jxNodes2 = jxDocument.selN("//student/name[@id]");
        for (JXNode jxNode2 : jxNodes2) {
            System.out.println(jxNode2);
        }
        System.out.println("=================");

        //查询 student标签下带有id属性的name标签并且id属性值为1
        List<JXNode> jxNodes3 = jxDocument.selN("//student/name[@id='1']");
        for (JXNode jxNode3 : jxNodes3) {
            System.out.println(jxNode3);
        }
    }
}

 

posted @ 2023-02-01 13:55  ja不会va  阅读(29)  评论(0)    收藏  举报