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类中定义的语法
代码
public class JsoupDemo6_Selector {
public static void main(String
[] args
) throws IOException
{
String path
= JsoupDemo6_Selector
.class.getClassLoader()
.getResource("student.xml").getPath();
Document document
= Jsoup
.parse(new File(path
), "utf-8");
Elements elements
= document
.select("name");
System
.out
.println(elements
);
System
.out
.println("------------------------");
Elements elements1
= document
.select("#itcast");
System
.out
.println(elements1
);
System
.out
.println("------------------------");
Elements elements2
= document
.select("student[number='heima_0001']");
System
.out
.println(elements2
);
System
.out
.println("------------------------");
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的语法完成查询。
代码
public class JsoupDemo7_Xpath {
public static void main(String
[] args
) throws IOException
, XpathSyntaxErrorException
{
String path
= JsoupDemo7_Xpath
.class.getClassLoader()
.getResource("student.xml").getPath();
Document document
= Jsoup
.parse(new File(path
), "utf-8");
JXDocument jxDocument
= new JXDocument(document
);
List
<JXNode> jxNodes
= jxDocument
.selN("//student");
for (JXNode jxNode
: jxNodes
) {
System
.out
.println("jxNode"+":"+jxNode
);
}
System
.out
.println("------------------------");
List
<JXNode> jxNodes1
= jxDocument
.selN("//student/name");
for (JXNode jxNode
: jxNodes1
) {
System
.out
.println("jxNodes1"+":"+jxNode
);
}
System
.out
.println("------------------------");
List
<JXNode> jxNodes2
= jxDocument
.selN("//student/name[@id]");
for (JXNode jxNode
: jxNodes2
) {
System
.out
.println("jxNodes2"+":"+jxNode
);
}
System
.out
.println("------------------------");
List
<JXNode> jxNodes3
= jxDocument
.selN("//student/name[@id='itcast']");
for (JXNode jxNode
: jxNodes3
) {
System
.out
.println("jxNodes3"+":"+jxNode
);
}
}
}