|
快速查询
如果要快速查询某个标签下的某个标签,按照上面的需要一步一步获取,不方便,就需要一如快速查询方式。
(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);
}
}
|