Introdução

A camada DOM é o núcleo de Aspose.HTML FOSS para Python. Ela modela uma página HTML da mesma forma que os padrões — como uma árvore de nós Document, Element, Text, Comment e DocumentFragment — e fornece as operações para construir, inspecionar e reorganizar essa árvore a partir de código Python, sem a necessidade de um navegador.

Este post percorre os principais recursos do DOM: criação de nós, gerenciamento de atributos, movimentação de subárvores usando operações Node, análise de fragmentos e busca de elementos novamente após a árvore ser construída. Tudo o que é apresentado aqui é distribuído no pacote aspose-html-foss em PyPI, possui licença MIT e roda em puro Python na versão 3.10 ou superior.


Recursos Principais

Criar Documentos e Elementos

Document é a fábrica de nós: create_element() para elementos, create_text_node() para texto, create_comment() para comentários e create_document_fragment() para contêineres leves. Novos nós são anexados à árvore com append_child():

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
doc.append_child(el)

Gerenciar Atributos

Os atributos fazem ida e volta através de Element.set_attribute(), get_attribute(), has_attribute() e remove_attribute(). A classe Attr modela nós de atributo individuais quando você precisa deles como objetos em vez de strings:

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)

Operações de Árvore no Nó

Todo nó herda o conjunto padrão de ferramentas de árvore de Node: insert_before(), remove_child(), replace_child(), clone_node() e contains() para alterações e verificações de estrutura, além de child_nodes, parent_node e first_child para travessia, e text_content para ler ou atribuir o texto de um sub-árvore. get_root_node() e has_child_nodes() respondem diretamente às perguntas estruturais comuns.

Analisar Fragmentos e Marcação Adjacente

HTMLDocument.parse() lida com páginas completas e HTMLDocument.parse_fragment() lida com marcação parcial. Para inserção cirúrgica em relação a um elemento existente, Element fornece insert_adjacent_html(), insert_adjacent_text() e insert_adjacent_element() — a inserção padrão de quatro posições API. Document.import_node() e adopt_node() movem nós entre documentos.

Buscar e Ler de Volta

Document.get_element_by_id() recupera um elemento pelo seu atributo id. Combinado com o acesso ao estilo computado da camada CSSOM, você pode verificar o que um sub-árvore contém e como ele será estilizado:

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))

Início Rápido

Instalar a partir de PyPI:

asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.

Construa uma pequena árvore, marque-a com atributos e confirme a estrutura:

from aspose_html.dom import Document

doc = Document()
container = doc.create_element("div")
container.set_attribute("id", "content")
doc.append_child(container)

child = doc.create_element("p")
container.append_child(child)

print(container.has_child_nodes())
print(doc.get_element_by_id("content").get_attribute("id"))

Código Aberto e Licenciamento

Aspose.HTML FOSS para Python está licenciado sob MIT — livre para uso comercial, modificação e redistribuição. O código está hospedado em GitHub, e os lançamentos são publicados em PyPI como aspose-html-foss.


Primeiros Passos

Recursos relacionados