"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como extrair texto de elementos HTML com classes específicas em matrizes planas usando PHP DOM?

Como extrair texto de elementos HTML com classes específicas em matrizes planas usando PHP DOM?

Postado em 2025-02-06
Navegar:626

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

extraindo texto plano de elementos com uma classe designada usando o php dom

extraindo texto de elementos html específicos é uma tarefa comum no desenvolvimento da web. O PHP DOM fornece ferramentas robustas para analisar HTML e acessar seu conteúdo. Este artigo atende a um requisito específico para extrair texto de elementos com uma classe nomeada em duas matrizes planas. Nomes de classe alternados, a tarefa é salvar o texto em duas matrizes: uma para títulos e outra para conteúdo. Por exemplo, dado o seguinte html:

capítulo 1

Este é o capítulo 1

precisamos obter a seguinte saída:

$ heading = ['Capítulo 1', 'Capítulo 2', 'Capítulo 3']; $ content = ['Este é o capítulo 1', 'este é o capítulo 2', 'este é o capítulo 3'];

Chapter 1

This is chapter 1

solução

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

carrega o html em um objeto domdocument:

$ dom = new DomDocument (); $ dom-> loadHtml ($ test);

  1. Crie um objeto domxpath para executar xpaths:
$dom = new DOMDocument();
$dom->loadHTML($test);
  1. use a função parsetoarray () para extrair texto de elementos com classe especificada:
$xpath = new DOMXPath($dom);
    na função partoarray ():
executa uma consulta XPath para a classe designada.

Chapter 1

This is chapter 1

itera através dos nós correspondentes e extrai seu conteúdo de texto.

Php função parsetoarray (domxpath $ xpath, string $ classe): Array { $ xpathQuery = "//*[@class = '$ class']"; $ elements = $ xpath-> consulta ($ xpathquery); $ resultArray = []; foreach ($ elements como $ element) { $ nós = $ element-> ChildNodes; foreach ($ nós como $ node) { $ resultArray [] = $ node-> nodEvalue; } } return $ resultArray; } $ test = capítulo 1

Este é o capítulo 1

capítulo 2

Este é o capítulo 2

capítulo 3

Este é o capítulo 3

Html; $ dom = new DomDocument (); $ dom-> loadHtml ($ test); $ xpath = new DomXPath ($ dom); $ Heading = Parsetoarray ($ XPath, 'Heading1-H'); $ content = parsetoarray ($ xpath, 'normal-h'); var_dump ($ cabeçalho); eco "
"; var_dump ($ content); eco "
";
    Esta abordagem utiliza o poder do PHP DOM e XPath para extrair com eficiência o texto de documentos HTML, permitindo manipulação de conteúdo mais complexa e direcionada.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3