XML, hoặc ngôn ngữ đánh dấu có thể mở rộng, là một ngôn ngữ đánh dấu đa năng thường được sử dụng để mã hóa các tài liệu ở định dạng vừa có thể đọc được và có thể đọc được bằng máy. Định dạng này được sử dụng rộng rãi để chuyển dữ liệu, tạo các tệp cấu hình và phát triển các dịch vụ web.
Trong các tài liệu XML, các phần tử được gói gọn trong các thẻ biểu thị sự bắt đầu và kết thúc của mỗi phần tử, cung cấp một cấu trúc rõ ràng cho dữ liệu.
Ví dụ về XML:
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
Bài viết này khám phá các thư viện và phương pháp khác nhau có sẵn để phân tích cú pháp XML trong Python.
Tiếp theo, chúng tôi sẽ đi sâu vào các thư viện khác nhau có sẵn để trích xuất dữ liệu XML trong Python và hướng dẫn bạn trong quá trình cài đặt để thiết lập môi trường của bạn để làm việc với các tài liệu XML.
xml.etree.elementtree là một mô -đun thư viện tiêu chuẩn để phân tích cú pháp và tạo dữ liệu XML. Nó cung cấp một API hiệu quả và đơn giản để phân tích XML từ các chuỗi và tệp và để tạo các tài liệu XML.
Ví dụ cơ bản:
import xml.etree.ElementTree as ET
xml_data = """
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
"""
root = ET.fromstring(xml_data)
for item in root.findall('item'):
name = item.find('name').text
price = item.find('price').text
print(f'Name: {name}, Price: {price}')
Đầu ra:
xml.dom.minidom là một thư viện Python tích hợp khác cung cấp biểu diễn DOM (mô hình đối tượng tài liệu) của XML. Thư viện này cho phép thao tác XML chi tiết hơn.
Ví dụ cơ bản:
from xml.dom.minidom import parseString
xml_data = """
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
"""
dom = parseString(xml_data)
items = dom.getElementsByTagName('item')
for item in items:
name = item.getElementsByTagName('name')[0].firstChild.data
price = item.getElementsByTagName('price')[0].firstChild.data
print(f'Name: {name}, Price: {price}')
Đầu ra:
Đẹp là một thư viện phổ biến để phân tích các tài liệu HTML và XML. Nó đặc biệt hữu ích để cạo dữ liệu web và xử lý XML hình thành kém.
Ví dụ cơ bản:
from bs4 import BeautifulSoup
xml_data = """
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
"""
soup = BeautifulSoup(xml_data, 'xml')
items = soup.find_all('item')
for item in items:
name = item.find('name').text
price = item.find('price').text
print(f'Name: {name}, Price: {price}')
Đầu ra:
LXML là một thư viện mạnh mẽ kết hợp dễ sử dụng ElementTree với tốc độ và tính năng của thư viện LibXML2. Nó hỗ trợ cả phân tích cú pháp XML và HTML.
Ví dụ cơ bản:
from lxml import etree
xml_data = """
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
"""
root = etree.fromstring(xml_data)
items = root.findall('item')
for item in items:
name = item.find('name').text
price = item.find('price').text
print(f'Name: {name}, Price: {price}')
Đầu ra:
Chuyển đổi XML thành từ điển có thể hữu ích để thao tác và xử lý dữ liệu XML với tính linh hoạt hơn.
import xml.etree.ElementTree as ET
def xml_to_dict(element):
if len(element) == 0:
return element.text
return {child.tag: xml_to_dict(child) for child in element}
xml_data = """
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
"""
root = ET.fromstring(xml_data)
data_dict = xml_to_dict(root)
print(data_dict)
Đầu ra:
Chuyển đổi dữ liệu từ định dạng XML sang CSV đơn giản hóa quá trình phân tích và lưu trữ dữ liệu, giúp tích hợp với các ứng dụng bảng tính dễ dàng hơn và tăng cường khả năng trực quan hóa dữ liệu một cách hiệu quả.
import csv
import xml.etree.ElementTree as ET
xml_data = """
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
"""
root = ET.fromstring(xml_data)
with open('output.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Name', 'Price'])
for item in root.findall('item'):
name = item.find('name').text
price = item.find('price').text
writer.writerow([name, price])
Khi phân tích cú pháp XML, các lỗi xử lý là rất quan trọng để đảm bảo rằng mã của bạn có thể quản lý dữ liệu bất ngờ hoặc bị dị tật một cách duyên dáng.
import xml.etree.ElementTree as ET
xml_data = """
<data>
<item>
<name>Item 1</name>
<price>10</price>
</item>
<item>
<name>Item 2</name>
<price>20</price>
</item>
</data>
"""
try:
root = ET.fromstring(xml_data)
except ET.ParseError as e:
print(f'Error parsing XML: {e}')
Dưới đây là một ví dụ thực tế sử dụng dữ liệu đẹp mắt để phân tích dữ liệu XML từ URL:
import requests # Nhập thư viện yêu cầu để thực hiện các yêu cầu HTTP
from bs4 import BeautifulSoup # Nhập đẹp từ thư viện BS4 để phân tích cú pháp XML
# Xác định URL của dữ liệu XML
url = "https://httpbin.org/xml"
# Gửi yêu cầu nhận đến URL
response = requests.get(url)
# Phân tích nội dung XML của phản hồi bằng cách sử dụng đẹp
soup = BeautifulSoup(response.content, 'xml')
# Vòng lặp qua tất cả các phần tử 'trượt' trong XML
for slide in soup.find_all('slide'):
# Tìm phần tử 'Tiêu đề' trong mỗi 'slide' và nhận văn bản của nó
title = slide.find('title').text
# In văn bản tiêu đề
print(f'Title: {title}')
Đầu ra:
Các ứng dụng khác nhau sử dụng định dạng dữ liệu cơ bản XML từ dịch vụ web đến các tệp cấu hình. Python có nhiều thư viện mạnh mẽ để phân tích dữ liệu XML cũng như thao tác. Python có một thư viện toàn diện để phân tích dữ liệu XML cho dù người ta cần khai thác dữ liệu cơ bản hoặc xử lý tài liệu công phu. Các nhà phát triển web Python có khả năng phải có là mã XML cho cả trao đổi dữ liệu và quét web.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Bình luận: 0