JsoupDemo6

    技术2026-09-01  6

    XML快捷查询方式:

    student.xml

    <?xml version="1.0" encoding="UTF-8" ?> <students> <student number="heima_0001"> <name id="itcast"> <xing></xing> <ming></ming> </name> <age>100</age> <sex>female</sex> </student> <student number="heima_0002"> <name>lisi</name> <age id="sili">45</age> <sex>female</sex> </student> </students>

    1. selector:选择器(JsoupDemo6)

    * 使用的方法是:Elements select​(String cssQuery) * 语法:参考Selector类中定义的语法

    代码

    /** * 选择器查询 * document继承自ELement对象,document的返回值是ELement */ public class JsoupDemo6_Selector { public static void main(String[] args) throws IOException { //1获取student.xml的path String path = JsoupDemo6_Selector.class.getClassLoader() .getResource("student.xml").getPath(); //2解析xml文档,加载文档进内存,获取Document对象 Document document = Jsoup.parse(new File(path), "utf-8"); //3、查询name标签 /* div{} */ Elements elements = document.select("name"); System.out.println(elements); System.out.println("------------------------"); //4、查询id值为itcast的元素 Elements elements1 = document.select("#itcast"); System.out.println(elements1); System.out.println("------------------------"); //5、获取student标签并且number属性值为heima_0001的age字标签 //5.1获取student标签并且number属性值为heima_0001 Elements elements2 = document.select("student[number='heima_0001']"); System.out.println(elements2); System.out.println("------------------------"); //5.2获取student标签并且number属性值为heima_0001的age字标签 Elements elements3 = document.select("student[number='heima_0001'] age"); System.out.println(elements3); } }

    2. Xpath:(JsoupDemo7)

    * XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 * 使用Jsoup的Xpath需要额外导入jar包。(JsoupXpath-0.3.2.jar)

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

    代码

    /** * 选择器查询 * document继承自ELement对象,document的返回值是ELement * 导入jar包: * JsoupXpath-0.3.2.jar */ public class JsoupDemo7_Xpath { public static void main(String[] args) throws IOException, XpathSyntaxErrorException { //1获取student.xml的path String path = JsoupDemo7_Xpath.class.getClassLoader() .getResource("student.xml").getPath(); //2解析xml文档,加载文档进内存,获取Document对象 Document document = Jsoup.parse(new File(path), "utf-8"); //-------------------------------------------------------------------- //3、根据document对象,创建JXDocument对象 JXDocument jxDocument = new JXDocument(document); //4、结合Xpath的语法查询(返回所有student,不考虑位置) //4.1查询所有student标签 List<JXNode> jxNodes = jxDocument.selN("//student"); for (JXNode jxNode : jxNodes) {//iter System.out.println("jxNode"+":"+jxNode); } System.out.println("------------------------"); //4.2查询所有student标签下的name标签 List<JXNode> jxNodes1 = jxDocument.selN("//student/name"); for (JXNode jxNode : jxNodes1) {//iter System.out.println("jxNodes1"+":"+jxNode); } System.out.println("------------------------"); //4.3查询student标签下带有id属性的name标签 List<JXNode> jxNodes2 = jxDocument.selN("//student/name[@id]"); for (JXNode jxNode : jxNodes2) {//iter System.out.println("jxNodes2"+":"+jxNode); } System.out.println("------------------------"); //4.4查询student标签下带有id属性的name标签,并且属性值为itcast List<JXNode> jxNodes3 = jxDocument.selN("//student/name[@id='itcast']"); for (JXNode jxNode : jxNodes3) {//iter System.out.println("jxNodes3"+":"+jxNode); } } }
    Processed: 0.011, SQL: 9