Phân tích cú pháp XML của Python: Hướng dẫn toàn diện
XML (Ngôn ngữ đánh dấu mở rộng) là ngôn ngữ phổ biến được sử dụng để lưu trữ và truyền dữ liệu. Python cung cấp một số thư viện để phân tích cú pháp XML. Trong hướng dẫn này, chúng tôi sẽ giới thiệu cho bạn hai thư viện Python tích hợp để phân tích cú pháp XML: xml.dom.minidom và xml.etree.ElementTree.
Bước 1: Phân tích cú pháp XML bằng xml.dom.minidom
Thư viện xml.dom.minidom cho phép bạn phân tích các tài liệu XML bằng Python. Để phân tích một chuỗi XML, hãy sử dụng phương thức ParsString:
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)
Trong đoạn mã trên, chúng tôi phân tích chuỗi XML và trích xuất tên sách.
Bước 2: Phân tích cú pháp XML bằng xml.etree.ElementTree
Thư viện xml.etree.ElementTree (ET) cung cấp một cách Pythonic hơn để phân tích cú pháp XML. Để phân tích một chuỗi XML, hãy sử dụng phương thức 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)
Trong đoạn mã trên, chúng tôi phân tích chuỗi XML và in văn bản của từng phần tử.
Bước 3: Phân tích tệp XML
Cả minidom và ElementTree đều có thể phân tích cú pháp XML từ các tệp bằng phương thức phân tích cú pháp:
# 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)
Đoạn mã trên trình bày cách phân tích cú pháp một tệp XML và in một số phần tử.
Bước 4: Lưu dữ liệu XML vào tệp CSV
Sau khi phân tích cú pháp XML, bạn có thể lưu dữ liệu vào tệp CSV bằng thư viện gấu trúc:
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)
Bước 5: Xử lý XML không hợp lệ
Thư viện Beautiful Soup có thể phân tích các tài liệu XML có thể có lỗi:
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 có thể xử lý XML không hợp lệ nhưng nó chậm hơn các thư viện phân tích cú pháp XML khác.
Bình luận (0)
Chưa có bình luận nào ở đây, bạn có thể là người đầu tiên!