บทนำ
ระดับ DOM คือแกนหลักของ Aspose.HTML FOSS สำหรับ Python. มันจำลองหน้า HTML ตามมาตรฐาน — เป็นต้นไม้ของโหนด Document, Element, Text, Comment และ DocumentFragment — และให้คุณใช้การดำเนินการเพื่อสร้าง, ตรวจสอบ, และจัดเรียงต้นไม้นั้นจากโค้ด Python โดยไม่ต้องมีเบราว์เซอร์อยู่ในกระบวนการ.
โพสต์นี้จะพาไปดูคุณลักษณะหลักของ DOM: การสร้างโหนด, การจัดการแอตทริบิวต์, การย้ายซับทรีโดยใช้การดำเนินการ Node, การแยกส่วน, และการค้นหาองค์ประกอบอีกครั้งเมื่อสร้างต้นไม้เสร็จแล้ว. ทุกอย่างที่แสดงในที่นี้รวมอยู่ในแพคเกจ aspose-html-foss บน PyPI, มีสัญญาอนุญาตแบบ MIT, และทำงานใน Python แท้บนเวอร์ชัน 3.10 หรือใหม่กว่า.
คุณสมบัติหลัก
สร้างเอกสารและองค์ประกอบ
Document คือโรงงานสร้างโหนด: create_element() สำหรับองค์ประกอบ, create_text_node() สำหรับข้อความ, create_comment() สำหรับคอมเมนต์, และ create_document_fragment() สำหรับคอนเทนเนอร์น้ำหนักเบา. โหนดใหม่จะถูกแนบเข้ากับต้นไม้ด้วย append_child():
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
doc.append_child(el)
จัดการแอตทริบิวต์
แอตทริบิวต์ทำการเดินทางรอบผ่าน Element.set_attribute(), get_attribute(), has_attribute() และ remove_attribute(). คลาส Attr จำลองโหนดแอตทริบิวต์แต่ละตัวเมื่อคุณต้องการใช้เป็นอ็อบเจกต์แทนสตริง:
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)
การดำเนินการต้นไม้บนโหนด
โหนดแต่ละตัวสืบทอดชุดเครื่องมือมาตรฐานของต้นไม้จาก Node: insert_before(), remove_child(), replace_child(), clone_node() และ contains() สำหรับการเปลี่ยนแปลงและตรวจสอบโครงสร้าง, รวมถึง child_nodes, parent_node และ first_child สำหรับการเดินทาง, และ text_content สำหรับการอ่านหรือกำหนดข้อความของซับทรี. get_root_node() และ has_child_nodes() ให้คำตอบกับคำถามโครงสร้างทั่วไปโดยตรง.
แยกส่วนของโค้ดและมาร์กอัปที่อยู่ติดกัน
HTMLDocument.parse() จัดการกับหน้าเต็มและ HTMLDocument.parse_fragment() จัดการกับมาร์กอัปบางส่วน. สำหรับการแทรกอย่างแม่นยำสัมพันธ์กับองค์ประกอบที่มีอยู่, Element ให้ insert_adjacent_html(), insert_adjacent_text() และ insert_adjacent_element() — การแทรกแบบสี่ตำแหน่งมาตรฐาน API. Document.import_node() และ adopt_node() ย้ายโหนดระหว่างเอกสาร.
ค้นหาและอ่านกลับ
Document.get_element_by_id() ดึงองค์ประกอบตามแอตทริบิวต์ id ของมัน. เมื่อรวมกับการเข้าถึงสไตล์ที่คำนวณจากชั้น CSSOM, คุณสามารถตรวจสอบได้ว่าซับทรีมีอะไรบ้างและจะถูกสไตล์อย่างไร:
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"))
เริ่มต้นอย่างรวดเร็ว
ติดตั้งจาก PyPI:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.สร้างต้นไม้ขนาดเล็ก, แท็กด้วยแอตทริบิวต์, และยืนยันโครงสร้าง:
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"))
โอเพนซอร์ส & ไลเซนส์
Aspose.HTML FOSS สำหรับ Python มีลิขสิทธิ์ MIT — ฟรีสำหรับการใช้เชิงพาณิชย์, การปรับเปลี่ยน, และการแจกจ่ายต่อ. โค้ดอยู่บน GitHub, และการปล่อยเวอร์ชันจะถูกเผยแพร่ไปยัง PyPI ในรูปแบบ aspose-html-foss.