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.