File size: 2,152 Bytes
08aee07
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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;

/**
 * Element元素对象
 */
public class JsoupDemo4 {
    public static void main(String[] args) throws IOException {
        String path = JsoupDemo4.class.getClassLoader().getResource("student1.xml").getPath();
        Document document = Jsoup.parse(new File(path), "utf-8");

        /*
            4、Element元素对象
                1. 获取子元素对象 -- 类似于Document对象
                    * getElementById(String id):根据id属性值获取唯一的element对象
					* getElementsByTag(String tagName):根据标签名称获取元素对象集合
					* getElementsByAttribute(String key):根据属性名称获取元素对象集合
					* getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合
                2. 获取属性值
					* String attr(String key):根据属性名称获取属性值
				3. 获取文本内容
					* String text():获取文本内容
					* String html():获取标签体的所有内容(包括字标签的字符串内容)
		    5. Node:节点对象
				* 是Document和Element的父类
         */
        //通过Document对象,获取所有的name标签
        Elements names = document.getElementsByTag("name");
        System.out.println(names.size());
        System.out.println("=====================");

        //通过Elements对象,获取内部的name标签
        Element student = document.getElementsByTag("student").get(0);
        Elements ele_name = student.getElementsByTag("name");
        System.out.println(ele_name.size());

        //获取student对象的属性值
        String number = student.attr("number");
        System.out.println(number);

        //获取name的文本内容
        String text = ele_name.text();
        String html = ele_name.html();
        System.out.println(text); //获取文本内容
        System.out.println(html); //获取标签体和文本内容

    }
}