Ngôn ngữ đánh dấu mở rộng, thường được gọi là XML là ngôn ngữ được thiết kế đặc biệt để dễ hiểu bởi cả con người và máy tính. Ngôn ngữ xác định một bộ quy tắc được sử dụng để mã hóa tài liệu ở định dạng cụ thể. Trong bài viết này, các phương pháp đã được mô tả để đọc và ghi các tệp XML trong python
Ghi chú. Nói chung, quá trình đọc dữ liệu từ tệp XML và phân tích các thành phần logic của nó được gọi là Phân tích cú pháp. Do đó, khi chúng ta đề cập đến việc đọc một tệp xml, chúng ta đang đề cập đến việc phân tích cú pháp tài liệu XML.
Trong bài viết này, chúng ta sẽ xem xét hai thư viện có thể được sử dụng cho mục đích phân tích cú pháp xml. họ đang
- BeautifulSoup được sử dụng cùng với trình phân tích cú pháp lxml xml
- thư viện cây nguyên tố.
Sử dụng BeautifulSoup cùng với trình phân tích cú pháp lxml
Với mục đích đọc và ghi tệp xml, chúng tôi sẽ sử dụng thư viện Python có tên BeautifulSoup. Để cài đặt thư viện, gõ lệnh sau vào terminal.
pip install beautifulsoup4
Beautiful Soup hỗ trợ trình phân tích cú pháp HTML có trong thư viện chuẩn của Python, nhưng nó cũng hỗ trợ một số trình phân tích cú pháp Python của bên thứ ba. Một là trình phân tích cú pháp lxml [được sử dụng để phân tích cú pháp các tài liệu XML/HTML]. lxml có thể được cài đặt bằng cách chạy lệnh sau trong bộ xử lý lệnh của Hệ điều hành của bạn.
pip install lxml
Đầu tiên chúng ta sẽ học cách đọc từ một tệp XML. Chúng tôi cũng sẽ phân tích dữ liệu được lưu trữ trong đó. Sau này chúng ta sẽ học cách tạo một tệp XML và ghi dữ liệu vào đó.
Đọc dữ liệu từ tệp XML
Có hai bước cần thiết để phân tích tệp xml. -
- Tìm thẻ
- Trích xuất từ các thẻ
Thí dụ
Tệp XML được sử dụng.
Python3
pip install lxml6
pip install lxml7
pip install lxml8
pip install lxml9
pip install lxml0
pip install lxml1
pip install lxml2
pip install lxml3______10
pip install lxml1
pip install lxml2
pip install lxml3
pip install lxml4
pip install lxml5
pip install lxml6
pip install lxml7____18
pip install lxml9
pip install lxml60
pip install lxml61
pip install lxml62
pip install lxml63
pip install lxml8
pip install lxml65
pip install lxml66
pip install lxml67
pip install lxml68
pip install lxml69
pip install lxml70
pip install lxml8
pip install lxml72____673
pip install lxml67
pip install lxml75
pip install lxml76
pip install lxml77
pip install lxml78
pip install lxml79
pip install lxml8
pip install lxml81
pip install lxml82
pip install lxml83
pip install lxml84
pip install lxml85
pip install lxml86
pip install lxml87
pip install lxml75
pip install lxml89
pip install lxml90
pip install lxml91
pip install lxml92
pip install lxml93
pip install lxml8
pip install lxml95
pip install lxml96
pip install lxml67
pip install lxml75
pip install lxml99
ĐẦU RA
Viết một tệp XML
Viết một tệp xml là một quy trình nguyên thủy, lý do là vì các tệp xml không được mã hóa theo một cách đặc biệt. Lúc đầu, việc sửa đổi các phần của tài liệu xml yêu cầu một người phải phân tích cú pháp qua nó. Trong đoạn mã dưới đây, chúng tôi sẽ sửa đổi một số phần của tài liệu xml đã nói ở trên.
Thí dụ.
Python3
pip install lxml6
pip install lxml7
pip install lxml8
pip install lxml9
pip install lxml04
pip install lxml3______10
pip install lxml1
pip install lxml2
pip install lxml3
pip install lxml4
pip install lxml5
pip install lxml6
pip install lxml7____18
pip install lxml9
pip install lxml16
pip install lxml17
pip install lxml18
pip install lxml19
pip install lxml8
pip install lxml65
pip install lxml22
pip install lxml67
pip install lxml24
pip install lxml25
pip install lxml26
pip install lxml27
pip install lxml28
pip install lxml29
pip install lxml30
pip install lxml31
pip install lxml82
pip install lxml83
pip install lxml84
pip install lxml85
pip install lxml86
pip install lxml37
pip install lxml6
pip install lxml39____696
pip install lxml01
pip install lxml8
pip install lxml03
pip install lxml04
pip install lxml05
pip install lxml75
pip install lxml07
đầu ra
Sử dụng Elementree
Mô-đun Elementree cung cấp cho chúng tôi rất nhiều công cụ để thao tác với các tệp XML. Phần hay nhất về nó là nó được đưa vào thư viện tích hợp sẵn của Python. Do đó, người ta không phải cài đặt bất kỳ mô-đun bên ngoài nào cho mục đích. Do định dạng xml vốn là định dạng dữ liệu phân cấp nên việc biểu diễn nó bằng cây sẽ dễ dàng hơn rất nhiều. Mô-đun cung cấp ElementTree cung cấp các phương thức để biểu diễn toàn bộ tài liệu XML dưới dạng một cây duy nhất.
Trong các ví dụ sau, chúng ta sẽ xem xét các phương pháp rời rạc để đọc và ghi dữ liệu vào và từ các tệp XML.
Đọc tệp XML
Để đọc một tệp XML bằng ElementTree, trước tiên, chúng tôi nhập lớp ElementTree được tìm thấy bên trong thư viện xml, dưới tên ET [quy ước chung]. Sau đó chuyển tên tệp của tệp xml tới ElementTree. parse[], để cho phép phân tích cú pháp tệp xml của chúng tôi. Sau đó, lấy gốc [thẻ cha] của tệp xml của chúng tôi bằng getroot[]. Sau đó, hiển thị [in] thẻ gốc của tệp xml của chúng tôi [cách không rõ ràng]. Sau đó hiển thị các thuộc tính của thẻ phụ của thẻ cha của chúng tôi bằng root[0]. thuộc tính. root[0] cho thẻ đầu tiên của root gốc và thuộc tính để nhận các thuộc tính của nó. Sau đó, chúng tôi hiển thị văn bản kèm theo trong thẻ phụ thứ nhất của thẻ phụ thứ 5 của thẻ gốc
Thí dụ.
Python3
pip install lxml08
pip install lxml09
pip install lxml8
pip install lxml11
pip install lxml12
pip install lxml13
pip install lxml14
pip install lxml15
pip install lxml8
pip install lxml17____12
pip install lxml67
pip install lxml20
pip install lxml21
pip install lxml22
pip install lxml8
pip install lxml24
pip install lxml25
pip install lxml26
pip install lxml27
pip install lxml75
pip install lxml29
pip install lxml30
pip install lxml31
pip install lxml75
pip install lxml33
pip install lxml34
pip install lxml35
pip install lxml36
pip install lxml37
pip install lxml38
pip install lxml75
pip install lxml33
pip install lxml41
pip install lxml42
pip install lxml34
pip install lxml44
đầu ra
Viết tệp XML
Bây giờ, chúng ta sẽ xem xét một số phương thức có thể được sử dụng để ghi dữ liệu trên tài liệu xml. Trong ví dụ này, chúng tôi sẽ tạo một tệp xml từ đầu.
Để làm tương tự, trước tiên, chúng ta tạo thẻ gốc [cha] dưới tên cờ vua bằng lệnh ET. Yếu tố ['cờ vua']. Tất cả các thẻ sẽ nằm bên dưới thẻ này, tôi. e. khi một thẻ gốc đã được xác định, các phần tử con khác có thể được tạo bên dưới nó. Sau đó, chúng tôi đã tạo một thẻ con/phần tử con có tên là Mở bên trong thẻ cờ vua bằng cách sử dụng lệnh ET. Phần tử con[]. Sau đó, chúng tôi đã tạo thêm hai thẻ phụ bên dưới thẻ Mở có tên là E4 và D4. Sau đó, chúng tôi đã thêm các thuộc tính vào các thẻ E4 và D4 bằng cách sử dụng set[], một phương thức được tìm thấy bên trong SubElement[], được sử dụng để xác định các thuộc tính cho một thẻ. Sau đó, chúng tôi đã thêm văn bản giữa các thẻ E4 và D4 bằng cách sử dụng văn bản thuộc tính được tìm thấy bên trong hàm SubElement. Cuối cùng, chúng tôi đã chuyển đổi kiểu dữ liệu của nội dung mà chúng tôi đang tạo từ 'xml. cây etree. Yếu TốCây. Phần tử' thành đối tượng byte, sử dụng lệnh ET. tostring[] [mặc dù tên hàm là tostring[] trong một số triển khai nhất định, nó chuyển đổi kiểu dữ liệu thành `byte` chứ không phải `str`]. Cuối cùng, chúng tôi đã xóa dữ liệu vào một tệp có tên gameofsquares. xml được mở ở chế độ `wb` để cho phép ghi dữ liệu nhị phân vào đó. Cuối cùng, chúng tôi đã lưu dữ liệu vào tệp của mình