Como trabalhar com o DOM em Python

Como trabalhar com o DOM em Python

Aspose.HTML FOSS para modelos Python HTML como um DOM baseado em padrões: Document cria nós, Element gerencia atributos e Node fornece operações de árvore. Este guia constrói uma pequena árvore e lê sua estrutura de volta, usando pip para instalação.

Guia passo a passo

Etapa 1: Instalar o pacote

Instale o pacote:

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

Em seguida, confirme os metadados do pacote:

pip show aspose-html-foss

Etapa 2: Importar classes necessárias

from aspose_html.dom import Document

Etapa 3: Criar um Documento e um Elemento

Document é a fábrica de nós; create_element() retorna um novo elemento que você anexa com append_child():

doc = Document()
el = doc.create_element("div")
doc.append_child(el)

Etapa 4: Definir atributos

set_attribute() escreve atributos de marcação; classes e ids conduzem o emparelhamento posterior de CSS:

el.set_attribute("class", "foo")
el.set_attribute("id", "bar")

Etapa 5: Ler a estrutura de volta

get_element_by_id() recupera o elemento, get_attribute() retorna seus atributos, e has_child_nodes() confirma a estrutura:

found = doc.get_element_by_id("bar")
print(found.get_attribute("class"))
print(doc.has_child_nodes())

Problemas Comuns e Soluções

A busca por id não retorna nada. Do elemento id atributo deve ser definido antes de get_element_by_id() é chamado, e o elemento deve estar anexado à árvore do documento.

Leituras de atributo retornam valores inesperados. get_attribute() retorna o que foi definido pela última vez com set_attribute(); verifique erros de digitação nos nomes dos atributos — eles são strings simples.

Nós criados a partir de outro documento se comportam incorretamente. Os nós são limitados ao documento. Crie-os através do mesmo Document, ou transfira-os com import_node()/adopt_node().

Perguntas Frequentes

Quais tipos de nós o Document pode criar?

Elementos, nós de texto, comentários e fragmentos de documento — via create_element(), create_text_node(), create_comment() e create_document_fragment().

Como mover ou remover nós existentes?

Use as operações Node: insert_before(), remove_child(), replace_child() e clone_node().

Posso analisar a marcação existente em vez de construir árvores manualmente?

Sim — HTMLDocument.parse() para páginas e HTMLDocument.parse_fragment() para fragmentos produzem o mesmo tipo de árvore.

Ver também

 Português