تحليل Python XML: دليل شامل
XML (لغة التوصيف القابلة للتوسيع) هي لغة شائعة تستخدم لتخزين البيانات ونقلها. توفر Python العديد من المكتبات لتحليل XML. في هذا الدليل، سنقدم لك مكتبتين مدمجتين في Python لتحليل XML: xml.dom.minidom وxml.etree.ElementTree.
الخطوة 1: تحليل XML باستخدام xml.dom.minidom
تتيح لك مكتبة xml.dom.minidom تحليل مستندات XML باستخدام Python. لتحليل سلسلة XML، استخدم طريقة parseString:
from xml.dom.minidom import parseString
xml_string = """
<library>
<book>
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
<year>1925</year>
</book>
</library>
"""
document = parseString(xml_string)
print(document.getElementsByTagName("title")[0].firstChild.nodeValue)
في الكود أعلاه، نقوم بتحليل سلسلة XML واستخراج عنوان الكتاب.
الخطوة 2: تحليل XML باستخدام xml.etree.ElementTree
توفر مكتبة xml.etree.ElementTree (ET) طريقة أكثر بايثونية لتحليل XML. لتحليل سلسلة XML، استخدم التابع fromstring :
import xml.etree.ElementTree as ET
xml_string = """
<library>
<book>
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
<year>1925</year>
</book>
</library>
"""
root = ET.fromstring(xml_string)
for child in root.iter():
if child.text.strip():
print(child.text)
في الكود أعلاه، نقوم بتحليل سلسلة XML وطباعة نص كل عنصر.
الخطوة 3: تحليل ملفات XML
يمكن لكل من minidom وElementTree تحليل XML من الملفات باستخدام طريقة التحليل:
# Using minidom
from xml.dom.minidom import parse
document = parse("sample.xml")
print(document.getElementsByTagName("title")[0].firstChild.nodeValue)
# Using ElementTree
import xml.etree.ElementTree as ET
root = ET.parse("sample.xml")
for child in root.iter():
if child.text.strip():
print(child.text)
يوضح الكود أعلاه كيفية تحليل ملف XML وطباعة بعض العناصر.
الخطوة 4: حفظ بيانات XML في ملف CSV
بعد تحليل ملف XML، يمكنك حفظ البيانات في ملف CSV باستخدام مكتبة الباندا:
import pandas as pd
parsed_dict = {
"title": ["The Great Gatsby"],
"author": ["F. Scott Fitzgerald"],
"year": [1925]
}
df = pd.DataFrame(parsed_dict)
df.to_csv("parsed_xml_data.csv", index=False)
الخطوة 5: التعامل مع XML غير صالح
يمكن لمكتبة Beautiful Soup تحليل مستندات XML التي قد تحتوي على أخطاء:
from bs4 import BeautifulSoup
invalid_xml = """
<root>
<person>
<name>John Doe</name>
<message>This is a message & an invalid XML example.</message>
</person>
</root>
"""
soup = BeautifulSoup(invalid_xml, features="lxml-xml")
print(soup.prettify())
يمكن لـ Beautiful Soup معالجة ملفات XML غير الصالحة، ولكنها أبطأ من مكتبات تحليل XML الأخرى.
التعليقات (0)
لا توجد تعليقات هنا حتى الآن، يمكنك أن تكون الأول!