Introdução
DOMDocument, uma classe PHP, oferece uma abordagem conveniente para análise e manipulação de documentos HTML. No entanto, ao tentar reter tags HTML durante a extração de conteúdo, os usuários podem encontrar dificuldades. Este artigo investiga o conceito subjacente de DOM e propõe soluções para enfrentar esse desafio.
Compreendendo DOM e nós
DOMDocument representa documentos HTML como árvores hierárquicas de nós. Cada nó pode ter nós filhos, formando uma estrutura complexa. É crucial reconhecer que os elementos HTML, juntamente com seus atributos e conteúdo de texto, são todos representados como nós dentro de um DOMDocument.
Resolvendo o problema de preservação de tags
O fornecido o código busca com êxito o nó DIV com o ID "showContent". No entanto, ele recupera apenas o conteúdo do texto dentro do DIV, excluindo as próprias tags HTML. Isso ocorre porque o código usa $tag->nodeValue, que extrai apenas o texto em vez dos nós reais.
Solução: atravessando nós
Para preservar os nós HTML, você precisa percorrer os nós filhos do seu nó de destino. O código abaixo mostra esta abordagem:
$dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $tags = $xpath->query('.//div[@id="showContent"]'); foreach ($tags as $tag) { echo $dom->saveXML($tag); echo '
'; }
Recuperando informações específicas do HTML
Se precisar de informações específicas do documento HTML, como links da tabela, você pode modificar a consulta XPath para selecionar o nós apropriados. Por exemplo:
foreach ($div->getElementsByTagName('a') as $link) { echo $dom->saveXML($link); }
Recursos adicionais
Para obter mais assistência sobre como trabalhar com DOMDocument, consulte os seguintes recursos:
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