"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo extraer texto de elementos HTML con clases específicas en matrices planas usando PHP DOM?

¿Cómo extraer texto de elementos HTML con clases específicas en matrices planas usando PHP DOM?

Publicado el 2025-02-06
Navegar:676

How to Extract Text from HTML Elements with Specific Classes into Flat Arrays using PHP DOM?

Extracción de texto plano de elementos con una clase designada usando php dom

El texto de elementos HTML específicos es una tarea común en el desarrollo web. PHP DOM proporciona herramientas robustas para analizar HTML y acceder a su contenido. Este artículo aborda un requisito específico para extraer texto de elementos con una clase nominada en dos matrices planas.

problema

dado el contenido HTML que contiene texto distribuido entre múltiples elementos P con Alterando los nombres de clases, la tarea es guardar el texto en dos matrices: una para encabezados y otro para contenido. Por ejemplo, dado el siguiente html:

Chapter 1

This is chapter 1

necesitamos obtener el siguiente resultado:

$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3'];
$content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];

Solution

para lograr esta extracción usando PHP DOM, empleamos domdocumento y domxpath. La solución implica los siguientes pasos:

  1. Cargue el html en un objeto DomDocument:
$dom = new DOMDocument();
$dom->loadHTML($test);
  1. crea un objeto domxPath para realizar xpaths:
$xpath = new DOMXPath($dom);
  1. use parsetoArray () Función para extraer texto de elementos con clase especificada:
$heading = parseToArray($xpath, 'Heading1-H');
$content = parseToArray($xpath, 'Normal-H');

en la función pardoArray ():

  • realiza una consulta XPath para la clase designada.
  • itera a través de los nodos coincidentes y extrae su contenido de texto.
  • almacena el texto extraído en una matriz, que se devuelve.

aquí está el código PHP completo:

query($xpathquery);

    $resultarray = [];
    foreach ($elements as $element) {
        $nodes = $element->childNodes;
        foreach ($nodes as $node) {
            $resultarray[] = $node->nodeValue;
        }
    }

    return $resultarray;
}

$test = 
    Chapter 1

This is chapter 1

Chapter 2

This is chapter 2

Chapter 3

This is chapter 3

HTML; $dom = new DOMDocument(); $dom->loadHTML($test); $xpath = new DOMXPath($dom); $heading = parseToArray($xpath, 'Heading1-H'); $content = parseToArray($xpath, 'Normal-H'); var_dump($heading); echo "
"; var_dump($content); echo "
";

Este enfoque utiliza el poder de PHP DOM y XPath para extraer eficientemente el texto de los documentos HTML, lo que permite una manipulación de contenido más compleja y dirigida.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3