כיצד לעבוד עם ה-DOM ב-Python

כיצד לעבוד עם ה-DOM ב-Python

Aspose.HTML קוד פתוח חופשי עבור מודלים של Python HTML כ-DOM מבוסס תקנים: Document יוצר צמתים, Element מנהל תכונות, ו-Node מספק פעולות עצים. מדריך זה בונה עץ קטן וקורא את המבנה שלו בחזרה, באמצעות pip להתקנה.

מדריך שלב-אחר-שלב

שלב 1: התקנת החבילה

התקן את החבילה:

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

לאחר מכן אשר את המטה-נתונים של החבילה:

pip show aspose-html-foss

שלב 2: ייבא את המחלקות הדרושות

from aspose_html.dom import Document

שלב 3: צור מסמך ואלמנט

Document הוא מפעל הצמתים; create_element() מחזיר אלמנט חדש שאתה מצרף עם append_child():

doc = Document()
el = doc.create_element("div")
doc.append_child(el)

שלב 4: הגדר תכונות

set_attribute() כותב תכונות סימון; מחלקות ו-ids מניעים התאמה של CSS מאוחרת יותר:

el.set_attribute("class", "foo")
el.set_attribute("id", "bar")

שלב 5: קרא את המבנה חזרה

get_element_by_id() מאחזר את האלמנט, get_attribute() מחזיר את התכונות שלו, ו-has_child_nodes() מאשר את המבנה:

found = doc.get_element_by_id("bar")
print(found.get_attribute("class"))
print(doc.has_child_nodes())

בעיות נפוצות ותיקונים

חיפוש לפי מזהה אינו מחזיר דבר. של האלמנט id התכונה חייבת להיות מוגדרת לפני get_element_by_id() נקראת, והאלמנט חייב להיות מחובר לעץ המסמך.

קריאת תכונות מחזירה ערכים לא צפויים. get_attribute() מחזיר את מה שהוגדר לאחרונה עם set_attribute(); בדוק שגיאות כתיב בשמות התכונות — הם מחרוזות רגילות.

צמתים שנוצרו ממסמך אחר מתנהגים באופן שגוי. הצמתים מוגדרים ברמת המסמך. צור אותם דרך אותו Document, או העבר אותם באמצעות import_node()/adopt_node().

שאלות נפוצות

אילו סוגי צמתים יכול המסמך ליצור?

אלמנטים, צמתי טקסט, תגובות, וקטעי מסמך — באמצעות create_element(), create_text_node(), create_comment(), ו-create_document_fragment().

איך אני מזיז או מסיר צמתים קיימים?

השתמש בפעולות Node: insert_before(), remove_child(), replace_child() ו-clone_node().

האם אני יכול לנתח סימון קיים במקום לבנות עצים ידנית?

כן — HTMLDocument.parse() עבור דפים ו-HTMLDocument.parse_fragment() עבור קטעי קוד מייצרים את אותו סוג של עץ.

ראה גם

 עברית