408、(案例)Element文档对象举例

落花浮王杯 提交于 2020-03-04 09:32:30

student3.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>

 JsoupDemo04.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 JsoupDemo04 {
    public static void main(String[] args) throws IOException {
        //2.获取Document对象,根据xml文档获取
        //2.1获取student.xml的path
        String path = JsoupDemo04.class.getClassLoader().getResource("student3.xml").getPath();

        Document doc = Jsoup.parse(new File(path),"UTF-8");
        /*(1)获取子元素对象(这个是在前面Document基础上继续获取)
            Element 	getElementById​(String id)
            根据id属性值获取唯一的element对象。
            Elements 	getElementsByTag​(String tagName)
            根据标签名称获取元素的对象集合
            Elements 	getElementsByAttribute​(String key)
            根据属性名称获取元素对象集合
            Elements 	getElementsByAttributeValue​(String key, String value)
            根据对应的属性名和属性值获取元素对象集合
        (2)获取属性值
        *  String attr(String key):根据属性名称获取属性值
        (3)获取文本内容
        *  String text():获取文本内容
        *  String html():获取标签体的所有内容(包括字标签的字符串内容)

        */
        //1、通过Document对象获取name标签,可以获取所有的name标签
        Elements elements = doc.getElementsByTag("name");
        System.out.println(elements);
        System.out.println("=========================================================");

        //2、通过Element获取子标签对象
        Element element_stu = doc.getElementsByTag("student").get(0);
        Elements name = element_stu.getElementsByTag("name");
        System.out.println(name);
        System.out.println("=========================================================");

        //3、获取student对象属性值
        //注意:下面这条语句,如果不写get(*),默认会获取第一个带number属性标签的该属性值
        String attr = doc.getElementsByTag("student").get(1).attr("number");
        System.out.println(attr);
        System.out.println("=========================================================");

        //获取标签内容
        Element element_stu2 = doc.getElementsByTag("student").get(0);
        String text =element_stu2.getElementsByTag("name").text();
        System.out.println(text);
        System.out.println("=========================================================");
        String name1 = element_stu2.getElementsByTag("name").html();
        System.out.println(name1);
    }
}

输出:

<name id="name_id01">
  我叫 
 <xing>
  张
 </xing> 
 <ming>
  三
 </ming> 
</name>
<name>
  李四
</name>
<name>
  王五
</name>
=========================================================
<name id="name_id01">
  我叫 
 <xing>
  张
 </xing> 
 <ming>
  三
 </ming> 
</name>
=========================================================
nu_002
=========================================================
我叫 张 三
=========================================================
我叫 
<xing>
 张
</xing> 
<ming>
 三
</ming>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!