* 物件的使用:
1. Jsoup:工具類,可以解析html或xml文件,返回Document物件
* parse:解析html或xml文件,返回Document物件
* parse(File in, String charsetName):解析xml或html檔案的。
* parse(String html):解析xml或html字串
* parse(URL url, int timeoutMillis):通過網路路徑獲取指定的html或xml的文件物件
2. Document:文件物件。代表記憶體中的dom樹。
* 獲取Element物件
* getElementById(String id):根據id屬性值來獲取唯一的element物件
* getElementByTag(String tagName):根據標籤名稱獲取元素物件集合
* getElementByAttribute(String key):根據屬性名稱獲取元素物件集合
* getElementByAttributeValue(String key, String value):根據對應的屬性名和屬性值獲取元素物件集合
3. Elements:元素Element物件的集合。可以當作ArrayList<Element>來使用
4. Element:元素物件
1. 獲取子元素物件
* getElementById(String id):根據id屬性值來獲取唯一的element物件
* getElementByTag(String tagName):根據標籤名稱獲取元素物件集合
* getElementByAttribute(String key):根據屬性名稱獲取元素物件集合
* getElementByAttributeValue(String key, String value):根據對應的屬性名和屬性值獲取元素物件集合
2. 獲取屬性值
* String attr(String key):根據屬性名稱獲取屬性值
3.獲取文字內容
* String text():獲取所有子標籤的純文字內容
* String html():獲取標籤體的所有內容(包括子標籤的標籤和文字內容)
5. Node:節點物件
* 是Document和Element的父類
<?<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE students SYSTEM "students.dtd">-->
<students>
<student number="s001">
<name id="itcast">zhangsan</name>
<age>23</age>
<sex>male</sex>
</student>
<student number="s002">
<name>lisi</name>
<age>24</age>
<sex>female</sex>
</student>
</students>
package cn.itcast.xml.jsoup;
import javax.print.Doc;
import java.lang.annotation.Documented;
import java.net.URL;
public class JsoupDemo1{
public static void main(String[] args) throws IOException{
/*Jsoup物件功能*/
//2.1獲取student.xml的path
String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
//2.2解析xml文件,載入文件進記憶體,獲取dom樹-->Document
Document document = Jsoup.parse(new File(path),"utf-8");
System.out.println(document);
//2.parse(String html):解析xml或html字串
String str="<?<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<!--<!DOCTYPE students SYSTEM \"students.dtd\">-->\n" +
"<students>\n" +
"\t<student number=\"s001\">\n" +
"\t\t<name>zhangsan</name>\n" +
"\t\t<age>23</age>\n" +
"\t\t<sex>male</sex>\n" +
"\t</student>\n" +
"\n" +
"\t<student number=\"s002\">\n" +
"\t\t<name>lisi</name>\n" +
"\t\t<age>24</age>\n" +
"\t\t<sex>female</sex>\n" +
"\t</student>\n" +
"</students>";
Document document = Jsoup.parse(str);
System.out.println(document);
//3.parse(URL url, int timeoutMillis):通過網路路徑獲取指定的html或xml的文件物件
URL url = new URL("https://jsoup.org/download");//代表網路中的一個資源路徑
Document document = Jsoup.parse(url,10000);
System.out.println(document);
/*Document/Element物件功能*/
//3.獲取元素物件
//3.1獲取所有student物件
Element elements = document.getElementByTag("student");
System.out.println(elements);
System.out.println("------");
//3.2 獲取屬性名為id的元素物件們
Elements elements = document.getElementByAttribute("id");
System.out.println(elements);
System.out.println("------");
//3.2 獲取number屬性值為heima_001的元素物件
Elements elements = document.getElementByAttributeValue("number","heima_001");
System.out.println(elements);
System.out.println("------");
//3.3獲取id屬性值的元素物件
Element itcast = document.getElementById("itcast");
System.out.println(itcast);
//Element元素物件
//通過Document物件獲取name標籤,獲取所有的name標籤,可以獲取到兩個
Elements elements = document.getElementByTag("name");
System.out.println(elements.size());
System.out.println("------");
//通過Element物件獲取子標籤物件
Element element_student = document.getElementByTag("student").get(0);
Elements ele_name = element_student.getElementByTag("name");
System.out.println(ele_name.size());
//獲取student物件的屬性值
String name = element_student.attr("number");
System.out.println(number);
//獲取文字內容
String text = ele_name.text();
String html = ele_name.html();
System.out.println("------");
System.out.println(text);
System.out.println(html);
}
}