HTML y XML parser --Jsoup

HTML y XML parser

Un .Jsoup general

  1. Perfil Jsoup

    jsoup es un analizador de Java HTML puede analizar una dirección URL directamente, el texto HTML, que proporciona una API muy de ahorro de mano de obra, puede, CSS y jQuery métodos similares de operación y la operación para eliminar los datos a través del DOM.

    Del mismo modo, Jsoup puede analizar HTML, puede analizar XML

  2. La función principal de Jsoup

    • Analizar desde una URL, archivo o cadena en HTML (XML)
    • El uso de DOM o CSS selectores para encontrar y recuperar datos
    • Puede manipular HTML / XML elementos, atributos, y el texto
  3. principales clases Jsoup

    • Jsoup: herramientas, puede analizar el documento HTML o XML para devolver un documento
    • Documento: Documento objeto que representa el árbol DOM de memoria
    • Elemento: objeto elemento
    • Elementos: objeto elemento es una colección de elementos y para ser utilizado como ArrayList <Elemento> utilizado
    • objeto de nodo, un padre Documento y Elemento: Nodo

Dos aplicaciones .Jsoup

  1. Pasos de inicio rápido

    • Importar el paquete JAR pertinentes
    • Obtiene el objeto del documento
    • objeto Element correspondiente a la etiqueta adquirido
    • Obtener datos

    student.xml archivo 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);
        }
    }
    
  2. relacionados con la API de objetos mediante la presentación

    • Jsoup

      clase Jsoup punto de entrada es cualquier programa Jsoup, y proporciona un método para la carga de diversas fuentes y analizar HTML / documento XML.

      Los métodos principales son los siguientes:

      • static Connection connect(String url): Crea y devuelve una conexión con el URL
      • static Document parse(File in, String charsetName): Se desarrollará el conjunto de caracteres en un archivo de documento de análisis
      • static Document parse(String html): Dada código html para analizar el documento
      • static String clean(String bodyHtml,Whitelist whitelist): Entrada de la seguridad HTML HTML devuelto y se filtró a través de una lista blanca etiquetas y atributos permitidos mediante el análisis del código HTML de entrada.
    • Documento

      Documento representa el árbol DOM memoria.

      Los métodos principales son:

      • Element getElementById(String id): Obtener un valor de atributo id único del elemento de acuerdo con el objeto
      • Elements getElementByTag(String tagName): Obtiene el nombre del elemento del objeto de acuerdo a la colección etiqueta
      • Elements getElementByAttribute(String key): Obtiene una colección de objetos basado en el elemento de nombre de atributo
      • Elements getElementByAttributeValue(String key, String value): Obtención de una colección de objetos de acuerdo con los correspondientes valores de elementos de nombre de atributo y el atributo
      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);
          }
      }
      
    • Elementos

      conjunto de objetos de elemento, como ArrayList <Elemento> Tratamiento

    • Elemento

      Elemento representa el objeto elemento

      El principal método tiene las siguientes categorías:

      1. La adquisición de objeto sub-elemento
        • Element getElementById(String id): Obtener un valor de atributo id único del elemento de acuerdo con el objeto
        • Elements getElementByTag(String tagName): Obtiene el nombre del elemento del objeto de acuerdo a la colección etiqueta
        • Elements getElementByAttribute(String key): Obtiene una colección de objetos basado en el elemento de nombre de atributo
        • Elements getElementByAttributeValue(String key, String value): Obtención de una colección de objetos de acuerdo con los correspondientes valores de elementos de nombre de atributo y el atributo
      2. Obtiene el valor de la propiedad
        • String attr(String key): Obtener valor de atributo basado en el nombre del atributo
      3. Obtener el contenido de texto
        • String text(): Obtener el contenido de texto
        • String html(): Obtener todos los contenidos del cuerpo de la etiqueta (incluyendo el contenido de la etiqueta de sub-cadena)
      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);
              // 输出:
      //            <xing>
      //                张 
      //                </xing> 
      //            <ming>
      //                三 
      //                </ming>
          }
      }
      
    • También se puede utilizar la forma más rápida y fácil, mediante el selector Selector

      • static Elements select(String cssQuery): Necesidad de sintaxis detallada para ver Jsoup documento oficial https://jsoup.org/apidocs/org/jsoup/select/Selector.html
      public 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);
          }
      }
      
  3. Enlaces de aprendizaje

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

Supongo que te gusta

Origin www.cnblogs.com/LucasBlog/p/12577218.html
Recomendado
Clasificación