Introduktion
DOM-lagret är kärnan i Aspose.HTML FOSS för Python. Det modellerar en HTML-sida på samma sätt som standarderna gör — som ett träd av Document, Element, Text, Comment och DocumentFragment noder — och ger dig operationerna för att bygga, inspektera och omarrangera det trädet från Python-kod, utan en webbläsare i loopen.
Det här inlägget går igenom de viktigaste DOM-funktionerna: skapa noder, hantera attribut, flytta underträd med Node-operationer, parsning av fragment och återhämta element när trädet är byggt. Allt som visas här levereras i aspose-html-foss-paketet på PyPI, är licensierat under MIT och körs i ren Python på version 3.10 eller senare.
Viktiga funktioner
Skapa dokument och element
Document är nodfabriken: create_element() för element, create_text_node() för text, create_comment() för kommentarer och create_document_fragment() för lätta behållare. Nya noder fästs i trädet med append_child():
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
doc.append_child(el)
Hantera attribut
Attribut passerar fram och tillbaka genom Element.set_attribute(), get_attribute(), has_attribute() och remove_attribute(). Klassen Attr modellerar enskilda attributnoder när du behöver dem som objekt snarare än strängar:
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)
Trädoperationer på nod
Varje nod ärver det standardmässiga trädverktyget från Node: insert_before(), remove_child(), replace_child(), clone_node() och contains() för strukturella förändringar och kontroller, samt child_nodes, parent_node och first_child för traversering, och text_content för att läsa eller tilldela texten i ett underträd. get_root_node() och has_child_nodes() svarar direkt på de vanliga strukturella frågorna.
Analysera fragment och intilliggande markup
HTMLDocument.parse() hanterar kompletta sidor och HTMLDocument.parse_fragment() hanterar partiell markup. För kirurgisk insättning relativt ett befintligt element erbjuder Element insert_adjacent_html(), insert_adjacent_text() och insert_adjacent_element() — den standardiserade fyrpositioninsättningen API. Document.import_node() och adopt_node() flyttar noder mellan dokument.
Sök upp och läs tillbaka
Document.get_element_by_id() hämtar ett element via dess id-attribut. I kombination med åtkomst till beräknad stil från CSSOM-lagret kan du verifiera vad ett underträd innehåller och hur det kommer att stylas:
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"))
Snabbstart
Installera från PyPI:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.Bygg ett litet träd, tagga det med attribut, och bekräfta strukturen:
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"))
Öppen källkod & licensiering
Aspose.HTML FOSS för Python är MIT-licensierad — fri för kommersiell användning, modifiering och vidaredistribution. Koden finns på GitHub, och releaser publiceras till PyPI som aspose-html-foss.