存取XML
Python 可以使用內建的 xml.etree.ElementTree
模組來讀取和寫入 XML(Extensible Markup Language)。
✅ 讀取 XML 檔案
✅ 解析 XML 字串
import xml.etree.ElementTree as ET
# XML 字串
xml_data = """
<people>
<person id="1">
<name>小明</name>
<age>25</age>
</person>
<person id="2">
<name>小華</name>
<age>30</age>
</person>
</people>
"""
# 解析 XML 字串
root = ET.fromstring(xml_data)
# 取得根節點名稱
print(root.tag) # people
# 遍歷所有 <person> 標籤
for person in root.findall("person"):
name = person.find("name").text
age = person.find("age").text
print(f"姓名: {name}, 年齡: {age}")
✅ ET.fromstring()
vs. ET.parse()
方法 | 用途 | 輸入類型 |
---|---|---|
ET.fromstring(xml_data) |
解析 XML 字串 | str (字串) |
ET.parse("file.xml") |
解析 XML 檔案 | file (檔案) |
如果你的 XML 來自 API 或網路請求(requests 回應),通常會是 字串,這時候用 ET.fromstring()
會比較合適!
✅ 寫入 XML
如果是要輸出成字串,而不是存成檔案,可使用底下程式碼,印出XML Tree。
如果要讓字串輸出的格式好看一點,可以使用底下程式碼。
from xml.dom.minidom import parseString
# 美化 XML
pretty_xml = parseString(xml_str).toprettyxml(indent=" ")
print(pretty_xml)
📝 總結
操作 | 方法 |
---|---|
讀取 XML 檔案 | ET.parse("file.xml") |
獲取根節點 | tree.getroot() |
遍歷 XML 節點 | for child in root: |
建立 XML | ET.Element("tag") |
寫入 XML | tree.write("file.xml") |
🚀 簡單好用,適合處理結構化數據! 😊