HTML&XML解析器--Jsoup

2022-04-04  本文已影响0人  张氏小毛驴

HTML&XML解析器

一.Jsoup概述

  1. Jsoup简介

    jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容,它提供一套非常省力的API,可以通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

    同样,Jsoup能解析HTML,也可以解析XML

  2. Jsoup主要功能

    • 从一个URL,文件或字符串中解析HTML(XML)
    • 使用DOM或CSS的选择器来查找和取出数据
    • 可以操作HTML/XML的元素,属性和文本
  3. Jsoup主要类

    • Jsoup:工具类,可以解析html或xml文档,返回一个Document
    • Document:文档对象,代表内存中的DOM树
    • Element:元素对象
    • Elements:元素对象Element的集合,可以当做ArrayList<Element>来使用
    • Node:节点对象,是Document和Element的父类

二.Jsoup的应用

  1. 快速入门步骤

    • 导入相关的jar包
    • 获取Document对象
    • 获取对应标签的Element对象
    • 获取数据

    XML文件student.xml

    <students>
        <student number="0001">
            <name id="itcast">
                <xing>张</xing>
                <ming>三</ming>
            </name>
            <age>18</age>
            <sex>male</sex>
        </student>
        <student number="0002">
            <name>jack</name>
            <age>18</age>
            <sex>female</sex>
        </student>
    
    </students>
    
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);
    }
}
  1. 相关对象的API使用介绍

    • Jsoup

      Jsoup类是任何Jsoup程序的入口点,并且提供了从各种来源加载和解析HTML/XML文档的方法。

      主要方法有如下:

      • 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并通过允许的标签和属性的白名单进行过滤。
    • Document

      Document代表了内存中的dom树。

      主要方法有:

      • 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);
          }
      }
      
  1. 学习链接

    https://blog.csdn.net/weixin_34129696/article/details/91885803

上一篇下一篇

猜你喜欢

热点阅读