HTML&XML解析器--Jsoup
2021-04-01 01:27
标签:csdn elements tor exce log source system html文本 字符 Jsoup简介 jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容,它提供一套非常省力的API,可以通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 同样,Jsoup能解析HTML,也可以解析XML Jsoup主要功能 Jsoup主要类 快速入门步骤 XML文件student.xml 相关对象的API使用介绍 Jsoup Jsoup类是任何Jsoup程序的入口点,并且提供了从各种来源加载和解析HTML/XML文档的方法。 主要方法有如下: Document Document代表了内存中的dom树。 主要方法有: Elements Element对象的集合,当做ArrayList Element Element代表了元素对象 主要有以下几类方法: 还可以使用快捷查询方式,使用选择器Selector 学习链接 https://blog.csdn.net/weixin_34129696/article/details/91885803 HTML&XML解析器--Jsoup 标签:csdn elements tor exce log source system html文本 字符 原文地址:https://www.cnblogs.com/LucasBlog/p/12577218.htmlHTML&XML解析器
一.Jsoup概述
二.Jsoup的应用
package com.zzy.www.JsoupTest;
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 JsoupDemo1 {
public static void main(String[] args) throws IOException {
String xmlPath = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
// 获取Document对象
Document document = Jsoup.parse(new File(xmlPath), "utf-8");
// 获取对应标签的Element对象 获取name标签
Elements ele = document.getElementsByTag("name");
// System.out.println(ele);
// 获取第一个name的Element对象
Element e1 = ele.get(0);
System.out.println(e1);
}
}
static Connection connect(String url)
:创建并返回URL的连接static Document parse(File in, String charsetName)
:将制定的字符集文件解析成文档static Document parse(String html)
:将给定的html代码解析成文档static String clean(String bodyHtml,Whitelist whitelist)
:从输入HTML返回安全的HTML,通过解析输入HTML并通过允许的标签和属性的白名单进行过滤。
Element getElementById(String id)
:根据id属性值获取唯一的element对象Elements getElementByTag(String tagName)
:根据标签名获取元素对象的集合Elements getElementByAttribute(String key)
:根据属性名称获取元素对象集合Elements getElementByAttributeValue(String key, String value)
:根据对应的属性名和属性值获取元素对象集合public class JsoupDemo2 {
public static void main(String[] args) throws IOException {
String xmlPath = JsoupDemo2.class.getClassLoader().getResource("student.xml").getPath();
// 获取Document对象
Document doc = Jsoup.parse(new File(xmlPath), "utf-8");
// 根据ID值获取Element对象
Element eleId = doc.getElementById("itcast");
System.out.println(eleId);
System.out.println("=================");
// 获取所有的student对象
// 通过标签名获取
Elements eleStudents = doc.getElementsByTag("student");
System.out.println(eleStudents);
System.out.println("---------------------");
// 获取属性名为id的元素对象
Elements eleAttrId = doc.getElementsByAttribute("id");
System.out.println(eleAttrId);
System.out.println("+++++++++++++++++++++");
// 获取属性名为number,属性值为0002的元素对象
Elements ele = doc.getElementsByAttributeValue("number", "0002");
System.out.println(ele);
}
}
Element getElementById(String id)
:根据id属性值获取唯一的element对象Elements getElementByTag(String tagName)
:根据标签名获取元素对象的集合Elements getElementByAttribute(String key)
:根据属性名称获取元素对象集合Elements getElementByAttributeValue(String key, String value)
:根据对应的属性名和属性值获取元素对象集合
String attr(String key)
:根据属性名称获取属性值
String text()
:获取文本内容String html()
:获取标签体的所有内容(包括子标签的字符串内容)public class JsoupDemo3 {
public static void main(String[] args) throws IOException {
String xmlPath = JsoupDemo1.JsoupDemo2.class.getClassLoader().getResource("student.xml").getPath();
// 获取Document对象
Document doc = Jsoup.parse(new File(xmlPath), "utf-8");
// 先获取Element元素对象
Elements eles = doc.getElementsByTag("student");
Element ele = eles.get(0);
// 获取Element元素的属性值
String attr = ele.attr("number");
System.out.println(attr); // 输出:0001
System.out.println("--------------");
// 获取元素的子元素对象
Elements ele1 = ele.getElementsByTag("name");
System.out.println(ele1);
// 获取文本内容
String txt = ele1.text();
System.out.println(txt); // 输出:张 三
System.out.println("===============");
String html = ele1.html();
System.out.println(html);
// 输出:
//
static Elements select(String cssQuery)
:详细语法需要查看Jsoup官方文档https://jsoup.org/apidocs/org/jsoup/select/Selector.htmlpublic class JsoupDemo4 {
public static void main(String[] args) throws IOException {
String xmlPath = JsoupDemo4.class.getClassLoader().getResource("student.xml").getPath();
Document doc = Jsoup.parse(new File(xmlPath), "utf-8");
// 通过标签名查找
Elements eles = doc.select("name");
System.out.println(eles);
System.out.println("----------------");
// 通过id值查找
Elements eles1 = doc.select("#itcast");
System.out.println(eles1);
System.out.println("================");
// 通过属性值查找 number=0002
Elements eles2 = doc.select("[number=‘0002‘]");
System.out.println(eles2);
}
}