Python:
עבודה עם XML

איך ל:

מודול xml.etree.ElementTree של פייתון מציע כלים לעבודה עם XML.

לנתח מסמך XML:

import xml.etree.ElementTree as ET

xml_data = """<?xml version="1.0"?>
<library>
    <book>
        <title>Learning Python</title>
        <author>Mark Lutz</author>
    </book>
    <book>
        <title>Programming Python</title>
        <author>Mark Lutz</author>
    </book>
</library>
"""

root = ET.fromstring(xml_data)
for book in root.findall('book'):
    title = book.find('title').text
    author = book.find('author').text
    print(f'Title: {title}, Author: {author}')

תוצאת דוגמה:

Title: Learning Python, Author: Mark Lutz
Title: Programming Python, Author: Mark Lutz

ליצור מסמך XML:

library = ET.Element('library')
book = ET.SubElement(library, 'book')
title = ET.SubElement(book, 'title')
title.text = 'Automate the Boring Stuff with Python'
author = ET.SubElement(book, 'author')
author.text = 'Al Sweigart'

tree = ET.ElementTree(library)
tree.write('library.xml')

להיכנס לעובי הקורה:

XML קיים מאז שנות ה-90 המאוחרות, נוצר כתת-קבוצה מפושטת של SGML לשיתוף נתונים אונלייני בקלות. למרות הפופולריות הגוברת של JSON לנתוני רשת, XML נותר חיוני בתחומים רבים כמו עסקים, הגדרות, ושירותי רשת (SOAP, RSS).

חלופות ל-xml.etree.ElementTree כוללות את lxml ו-minidom. lxml מהיר יותר ועשיר יותר במאפיינים, בעוד minidom מספק ממשק XML בסגנון “DOM-like”. בעת הבחירה, יש לשקול את נוחות השימוש, הביצועים, ודרישות המאפיינים הספציפיות.

מאחורי הקלעים, ElementTree פועל על דגם של עץ הרכיבים, שבו כל רכיב של קובץ ה-XML הוא צומת בעץ. זה מאפשר ביטויים וחיפושים של מסלול ישירים, והופך את הניווט והשינוי במבנה נתוני ה-XML לקלים יותר.

ראה גם: