“自己”这个东西是看不见的,撞上一些别的什么,反弹回来,才会了解“自己”。
所以,跟很强的东西、可怕的东西、水准很高的东西相碰撞,然后才知道“自己”是什么,这才是自我 。
运行环境
**JDK8 + IntelliJ IDEA 2018.3 **
利用方法
Element.select(String selector)和Elements.select(String selector)。
jar包文件
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;">https://files.cnblogs.com/files/papercy/jsoup_jar%E5%8C%85.rar</pre>
描述
Jsoup的元素支持类似CSS或(jquery)的选择器语法的查找匹配的元素,可实现功能强大且鲁棒性好的查询。
Select方法可作用于Document、Elements或Element,且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。
以下共介绍使用十种方法获取 xml元素
XML代码
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"><?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="1">
<name>feifeiye</name>
<age>19</age>
<sex>nv</sex>
</student>
<student id="2" class="two">
<name>papercy</name>
<age id="3" text-color="red" >19</age>
<sex>nan</sex>
</student>
</students></pre>
JAVA代码实现
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;">public static void main(String[] args) { /获取document文档,反射path/ String path=JsoupDemo1.class.getClassLoader().getResource("Students.xml").getPath(); try {
Document document = Jsoup.parse(new File(path),"utf-8"); /获取elements/element/ Elements element=document.getAllElements();
System.out.println("element:"+element);
} catch (IOException e) {
e.printStackTrace();
}
}</pre>
选择器使用
-
使用 * 选择器
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements elements = document.select("*");
System.out.println("element * 号选择器:"+elements); </pre>
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;">使用class 选择器</pre>
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements elements1 = document.select(".two");
System.out.println("element class 选择器:"+elements1);</pre>
- 使用ID 选择器
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements element1 = document.select("#1");
System.out.println("element1 id 选择器:"+element1);</pre>
- 使用 Tag 选择器
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;">Elements elements2 = document.select("name");
System.out.println("eleemnts2 tag 选择器:"+elements2);</pre>
- 使用 [attribute]: 利用属性
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements elements3 = document.select("[text-color]");
System.out.println("elements3 [attribute] 选择器:"+elements3);</pre>
- 使用 [^attr=value] : 利用属性值
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements elements4 = document.select("[text-color=red]");
System.out.println("elements4 [^attr=value] 选择器:"+elements4);
</pre>
- 使用 parent > child : 查找某个父元素下的直接子元素
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements elements5 = document.select("student>sex");
System.out.println("element5 parent > child 选择器 :"+elements5);</pre>
使用 ancestor child : (查找某个元素下子元素)
Elements element2 = document.select("students name"); System.out.println("element2 ancestor child 选择器:"+element2);
使用 containsOwn(text):查找直接包含给定文本的元素
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements element3 = document.select("name:contains(feifeiye)");
System.out.println("element3 containsOwn(text)选择器:"+element3);</pre>
- 使用 eq(n): 查找哪些元素的同级索引值与n相等
<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> Elements elements6 = document.select("student age:eq(1)");
System.out.println("elements6 eq(n)选择器:"+elements6);</pre>
心得
希望本无所谓有,无所谓无的。这正如地上的路;其实地上本没有路,走的人多了,也便成了路。
很多东西,只有花时间去做了,才能有个成功与否,站着看的永远比走的慢。或许看上去很厉害,很难的东西,你去实践的时候会发现没有想象中的难。
会不会是取决你做了没做,而不是想了没想。