Python:
การทำงานกับ XML
วิธีการ:
โมดูล xml.etree.ElementTree
ของ Python นำเสนอเครื่องมือในการทำงานกับ 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}, ผู้เขียน: {author}')
ผลลัพธ์ตัวอย่าง:
ชื่อหนังสือ: Learning Python, ผู้เขียน: Mark Lutz
ชื่อหนังสือ: Programming Python, ผู้เขียน: 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 มีมาตั้งแต่ปลายปี ’90s, ถูกสร้างขึ้นเป็นชุดย่อยที่ง่ายกว่าของ SGML เพื่อการแบ่งปันข้อมูลออนไลน์อย่างง่ายดาย แม้ JSON จะเป็นที่นิยมมากขึ้นสำหรับข้อมูลเว็บ, XML ยังคงเป็นสิ่งสำคัญในหลายๆ องค์กร, การกำหนดค่า, และบริการเว็บ (SOAP, RSS)
ทางเลือกที่แตกต่างจาก xml.etree.ElementTree
รวมถึง lxml
และ minidom
. lxml
เร็วและมีคุณสมบัติมากกว่า, ขณะที่ minidom
ให้หน้าตาที่เหมือนกับ “DOM-like” สำหรับ XML ให้ความพิจารณาในเรื่องความง่ายในการใช้งาน, ประสิทธิภาพ, และความต้องการคุณสมบัติเฉพาะ
ลึกลงไป, ElementTree
ทำงานบนโมเดลของต้นไม้องค์ประกอบ, ที่ซึ่งแต่ละส่วนประกอบของไฟล์ XML เป็นโหนดในต้นไม้ สิ่งนี้ทำให้มีการแสดงและค้นหาเส้นทางที่ตรงไปตรงมา, ทำให้ง่ายขึ้นในการนำทางและจัดการโครงสร้างข้อมูล XML
ดูเพิ่มเติม:
- โมดูล Python
xml.etree.ElementTree
: https://docs.python.org/3/library/xml.etree.elementtree.html lxml
: https://lxml.de/- W3Schools บทเรียน XML: https://www.w3schools.com/xml/
- ข้อมูลจำเพาะ XML: https://www.w3.org/XML/