עבודה עם ה-DOM

עבודה עם ה-DOM

שכבת ה-DOM מודליזת דף HTML כעץ של צמתים מסוגים שונים. Document הוא נקודת הכניסה ומפעל הצמתים; Element ו-Node מבצעים את ה-API של המניפולציה והמעבר.


יצירת צמתים

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)

Attributes

Element.set_attribute(), get_attribute(), has_attribute() ו-remove_attribute() מנהלים מאפייני סימון; Attr ו-NamedNodeMap חושפים אותם כאובייקטים:

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() עונים על שאלות מבניות באופן ישיר.

חיפוש וניווט

Document.get_element_by_id() מאחזר אלמנטים לפי מזהה. NodeList ו-HTMLCollection מחזיקים קבוצות תוצאות; NodeIterator ו-TreeWalker (עם NodeFilter) עוברים על תת-עצים בסדר המסמך.

מעקב אחרי מוטציות

MutationObserver רושם שינויים בעץ כערכי MutationRecord, המשקפים את תבנית הצופה הסטנדרטית לתגובה לעריכות מבניות.


טיפים ושיטות עבודה מומלצות

  • צור כל צומת דרך ה-Document הבעלים — הצמתים בעלי תחום מסמך; השתמש ב-Document.import_node() או ב-adopt_node() כדי להעביר אותם בין מסמכים
  • העדף את text_content לטקסט של תת-עץ שלם על פני ניהול ידני של צמתים באמצעות Text
  • השתמש ב-DocumentFragment כדי להרכיב קבוצות של צמתים לפני append_child() יחיד
  • בדוק את has_attribute() לפני get_attribute() כאשר תכונה חסרה משמעותית

בעיות נפוצות

בעיהסיבהתיקון
הצומת מופיעה במסמך הלא נכוןצומת שנוצרה על ידי Document שונההזז אותו עם import_node() או adopt_node() תחילה
חיפוש תכונה מחזיר כלוםהתכונה מעולם לא הוגדרה על האלמנטהגן עם has_attribute()
טקסט תת-עץ ריקקריאת text_content לפני שהילדים מצורפיםצורף ילדים, ואז קרא

FAQ

איזו מחלקה יוצרת אלמנטים חדשים?

Document — השיטה create_element() שלו היא המפעל ליצירת אלמנטים, עם מפעלים מקבילים לטקסט, לתגובות ולפרגמנטים.

איך אני מעביר תת-עץ בין שני מסמכים?

השתמש ב-Document.import_node() כדי להעתיק או ב-adopt_node() כדי להעביר, ולאחר מכן הצמד עם append_child().

האם קיים צופה API לשינויים בעץ?

כן — MutationObserver מספק חבילות MutationRecord המתארות שינויים מבניים ושינויים במאפיינים.


סיכום API Reference

מחלקה/מתודהתיאור
Document.create_elementצור צומת אלמנט
Document.get_element_by_idחפש אלמנט לפי מזהה
Element.set_attributeהגדר תכונת סימון
Node.insert_beforeהוסף צומת לפני צומת רפרנס
Node.clone_nodeהעתק צומת או תת-עץ
MutationObserverהתבונן בשינויים בעץ
TreeWalkerמעבר מסונן לפי סדר המסמך

ראה גם

 עברית