Trình đọc XML Python

gỡ rối là một thư viện đơn giản lấy một tài liệu XML và trả về một đối tượng Python phản ánh các nút và thuộc tính trong cấu trúc của nó

Ví dụ: một tệp XML như thế này



     name="child1">

có thể được tải như thế này

import untangle
obj = untangle.parse('path/to/file.xml')

và sau đó bạn có thể lấy thuộc tính tên của phần tử con như thế này

obj.root.child['name']

gỡ rối cũng hỗ trợ tải XML từ một chuỗi hoặc một URL

xmltodict¶

xmltodict là một thư viện đơn giản khác nhằm làm cho XML có cảm giác như đang làm việc với JSON

Một tệp XML như thế này

 has="an attribute">
  
    elements
    more elements
  
   a="complex">
    element as well
  

có thể được tải vào một lệnh Python như thế này

import xmltodict

with open('path/to/file.xml') as fd:
    doc = xmltodict.parse(fd.read())

và sau đó bạn có thể truy cập các phần tử, thuộc tính và giá trị như thế này

doc['mydocument']['@has'] # == u'an attribute'
doc['mydocument']['and']['many'] # == [u'elements', u'more elements']
doc['mydocument']['plus']['@a'] # == u'complex'
doc['mydocument']['plus']['#text'] # == u'element as well'

xmltodict cũng cho phép bạn quay lại XML bằng hàm unparse, có chế độ phát trực tuyến phù hợp để xử lý các tệp không vừa trong bộ nhớ và hỗ trợ không gian tên XML

lược đồ xml¶

xmlschema cung cấp hỗ trợ cho việc sử dụng XSD-Schemas trong Python. Không giống như các thư viện XML khác, có sẵn phân tích kiểu tự động, vì vậy f. e. nếu lược đồ xác định một phần tử thuộc loại int, thì dict được phân tích cú pháp cũng sẽ chứa một giá trị int cho phần tử đó. Ngoài ra, thư viện hỗ trợ xác thực tự động và rõ ràng các tài liệu XML dựa trên lược đồ

ngôn ngữ đánh dấu tensible. Đây là định dạng dựa trên văn bản để cấu trúc và chia sẻ dữ liệu trên các mạng, giữa các chương trình và giữa mọi người. Mặc dù tương tự như HTML cũng dựa trên các tiêu chuẩn SGML, định dạng XML tuân thủ các quy tắc định dạng nghiêm ngặt

 

 

Hơn nữa, XML dễ dự đoán và dễ đọc hơn giúp dễ dàng phát hiện và giải quyết lỗi hơn. Mặc dù hầu như tất cả các thẻ được sử dụng trong HTML đều được xác định trước, nhưng mặt khác, các thẻ XML thì không, làm cho nó thậm chí còn có thể mở rộng hơn

 

Trình đọc XML Python

Cấu trúc của tài liệu XML

Tất cả các tài liệu XML phải có một phần tử gốc được coi là phần tử cha của tất cả các phần tử khác. Hầu hết các phần tử XML cũng chứa một prolog tùy chọn. Tuy nhiên, nếu phần tử prolog tồn tại trong tài liệu XML, thì nó phải ở dòng đầu tiên trong tài liệu XML

Thảm prolog XML được sử dụng để chỉ định mã hóa ký tự cho các tài liệu XML thường là UTF-8, lập phiên bản và các ký tự quốc tế khác

 



Các thẻ XML và tệp XML bằng ngôn ngữ Python

Ngoài ra, thẻ XML phải có thẻ đóng tương ứng. Một tài liệu XML được coi là không hợp lệ nếu một số hoặc tất cả các thành phần của nó không có thẻ đóng tương ứng. Do đó, việc bỏ qua thẻ đóng trong tài liệu XML là bất hợp pháp. Mặt khác, thẻ Prolog không được coi là một phần của tài liệu XML và do đó, là một ngoại lệ đối với quy tắc này

Các thẻ trong tài liệu XML phân biệt chữ hoa chữ thường, các trường hợp được sử dụng trong các thẻ mở phải khớp với các trường hợp tương ứng của chúng, các thẻ đóng. Các thẻ chứa các trường hợp không khớp được coi là không hợp lệ và do đó khiến toàn bộ tài liệu cũng không hợp lệ. Dưới đây là hình minh họa các thẻ XML hợp lệ và không hợp lệ

 



 

Các phần tử XML cũng có thể có các thuộc tính với các giá trị thuộc tính tương ứng của chúng, trong các trường hợp như vậy, các giá trị thuộc tính phải luôn được đặt trong dấu ngoặc kép. Trong ví dụ bên dưới, phần tử sách có thuộc tính id ==“bk101”.

 



 

Phân tích tệp XML trong Python bằng Thư viện ElementTree

The sample XML document below contains information about books with   as the root element of the document.

Có một prolog ở đầu tài liệu chỉ định phiên bản của tài liệu; . 0”xml version=“1.0”?>. <cuốn sách id=“bk101”> book> elements containing the id attribute as well as child elements such as <author>, <title>, <genre>,<price>,<publish_date> and <description> with their corresponding closing tags.

 



 

ElementaryTree là một thư viện Python tích hợp mà chúng ta có thể sử dụng để tải và thao tác các tệp XML bằng nhiều chức năng của nó. Điều hướng qua một tệp XML thường là một quá trình đơn giản do cấu trúc trực quan của nó

 

Trình đọc XML Python

 

Vì ElementaryTree đã được cung cấp sẵn trong thư viện chuẩn Python nên chúng ta chỉ cần nhập nó vào đầu chương trình. Ngoài thư viện ElementaryTree, Python còn cung cấp cho chúng ta BeautifulSoup mà chúng ta cũng có thể sử dụng để phân tích cú pháp các tệp  XML.

 



 

Nhập ElementaryTree dưới dạng bí danh là một phương pháp phổ biến cho phép chúng ta dễ dàng gọi các hàm của nó mà không cần phải nhập toàn bộ tên của thư viện mỗi lần. Bây giờ để tải tệp XML, chúng ta chỉ cần chỉ định tên của tệp XML trong hàm ET. parse() và khởi tạo nó với biến cây như trong mã bên dưới.

 



Phân tích tệp XML bằng Python bằng vòng lặp for

Sử dụng vòng lặp for, chúng ta có thể lặp qua từng phần tử con của tài liệu XML. Chúng ta cũng có thể truy cập các phần tử có thuộc tính và in chúng ra. Trong đoạn mã dưới đây, chúng tôi đang sử dụng một vòng lặp for đơn giản để in ra thuộc tính của mọi cuốn sách. Thuộc tính được đề cập trong trường hợp này là thuộc tính 'id'

 



 

Chúng ta có thể đi sâu hơn vào cây và in các phần tử con của phần tử chẳng hạn như tác giả. Thay vì in thuộc tính sách, chúng ta sẽ khởi tạo tên của phần tử phụ mà chúng ta muốn truy cập với các giá trị được trả về bởi root. phương thức findall() .

 

Trình đọc XML Python

 

 

Về cơ bản, phương pháp này cho phép chúng ta đi sâu hơn vào phần tử gốc và tìm phần tử có tên mà chúng ta đã chỉ định trong . Trong đoạn mã bên dưới, chúng tôi đang truy cập , đây là phần tử phụ đầu tiên trong phần tử sách.

 



Phân tích tệp XML trong Python bằng phương thức findall()

Vì vậy, phương thức findall() cho phép chúng ta truy cập lớp đầu tiên, chúng ta cũng có thể truy cập các phần tử con khác theo cách tương tự. Trong ví dụ bên dưới, chúng tôi đang truy cập cả hai yếu tố tiêu đề và giá cùng một lúc.

 



 

Phương thức này trả về tiêu đề của mỗi cuốn sách trong tất cả các phần tử được in cùng với giá tương ứng của chúng trong thiết bị đầu cuối. Bây giờ chúng ta có thể làm bất cứ điều gì với các biến này vì tất cả thông tin được lưu ở đó.

Ngoài ra, chúng ta cũng có thể sử dụng thư mục gốc. iter() để lặp qua tất cả các phần tử bên dưới các phần tử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Phương pháp này chính xác hơn khi truy cập một phần tử. Chẳng hạn, chúng ta có thể truy cập phần tử tác giả như hình bên dưới.

 



 

Tóm lược

Đây là cách phân tích các tệp XML trong Python. Nếu bạn muốn xem thêm hướng dẫn lập trình, hãy xem kênh Youtube của chúng tôi, nơi chúng tôi có rất nhiều video hướng dẫn Python bằng tiếng Anh

Trong chuỗi Hướng dẫn lập trình Python của chúng tôi, bạn sẽ tìm thấy các tài liệu hữu ích giúp bạn cải thiện kỹ năng lập trình của mình và đẩy nhanh quá trình học tập

hướng dẫn lập trình

  • Cách sử dụng vòng lặp Python for
  • Cách sử dụng Bộ Python
  • Cách sử dụng Từ điển Python
  • Cách sử dụng các lớp Python
  • Cách sử dụng phạm vi Python
  • Cách sử dụng câu lệnh if-else trong Python
  • Cách sử dụng Python RegEx
  • Cách sử dụng Danh sách Python
  • Cách sử dụng Python Liệt kê
  • Cách sử dụng Hàm Python
  • Cách sử dụng Python Split
  • Cách sử dụng Python Try-Exception
  • Cách sử dụng Python Tuples
  • Cách sử dụng Mảng Python
  • Cách sử dụng Sắp xếp Python
  • Cách sử dụng Python DateTime
  • Làm cách nào để tải xuống Python?
  • Cách sử dụng chức năng Ghi tệp Python
  • Cách sử dụng Python Lambda
  • Cách sử dụng Python ListAppend
  • Cách sử dụng Danh sách hiểu Python
  • Cách sử dụng Bản đồ Python
  • Cách sử dụng Toán tử Python
  • Cách sử dụng Python Pandas
  • Cách sử dụng Yêu cầu Python
  • Cách sử dụng Chuỗi Python
  • Cách sử dụng Đếm Python
  • Cách sử dụng Nhận xét Python
  • Cách sử dụng phương pháp Trình đọc tệp Python
  • Cách sử dụng Python IDE-s
  • Cách sử dụng ghi nhật ký Python
  • Cách sử dụng In Python
  • Cách sử dụng Python Zip
  • Cách sử dụng Python nối thêm
  • Cách sử dụng Biến toàn cục Python
  • Cách sử dụng phương thức nối Python
  • Cách sử dụng độ dài danh sách Python
  • Cách sử dụng các tệp JSON của Python
  • Cách sử dụng Python Modulo
  • Cách sử dụng các phương thức mở tệp Python
  • Cách sử dụng vòng Python
  • Cách sử dụng giấc ngủ Python
  • Cách sử dụng Python thay thế
  • Cách sử dụng dải Python
  • Cách sử dụng mô-đun Thời gian Python
  • Cách sử dụng Python unittests
  • Làm cách nào để lưu dữ liệu vào tệp văn bản bằng Trình quản lý ngữ cảnh?
  • Cách sử dụng các mô-đun bên ngoài Python
  • Cách sử dụng Python tìm
  • Cách cài đặt trình quản lý gói Python pip
  • Cách xóa tệp trong Python
  • Phân tích tệp XML bằng Python
  • Cách tạo GUI bằng Python
  • Cách sử dụng Python trong Dấu nhắc Lệnh
  • Cách chạy chương trình Python trong Mã VS
  • Cách chạy một chương trình trong Python IDLE
  • Cách chạy chương trình trong Jupyter Notebook
  • Cách đọc tệp văn bản trong Python
  • Cách thêm số trong Python
  • Cách yêu cầu đầu vào của người dùng trong Python
  • Cách gỡ lỗi trong Python
  • Cách tạo một chủ đề trong Python
  • Cách nhập thư viện bằng Python
  • Cách sử dụng trình quản lý gói PIP
  • Cách sử dụng các lớp trong Python
  • Cách đảo ngược chuỗi trong Python
  • Cách chuyển đổi một chuỗi thành int trong Python
  • Cách in trên cùng một dòng trong Python
  • Cách xóa các mục khỏi danh sách
  • Cách thêm vào từ điển trong Python
  • Cách tạo một ngoại lệ trong Python
  • Cách ném ngoại lệ trong Python
  • Cách dừng chương trình trong Python
  • Cách sử dụng xác nhận Python
  • Cách sử dụng trình biên dịch Python

Bạn có muốn học cách viết mã trực tuyến không?

Làm cách nào để đọc tệp XML bằng Python?

Ví dụ đọc tệp XML bằng Python . import the ElementTree class found inside the XML library. Sau đó, chúng ta sẽ chuyển tên tệp của tệp XML cho ElementTree. parse(), để bắt đầu phân tích cú pháp. Sau đó, chúng ta sẽ lấy thẻ cha của tệp XML bằng getroot().

Làm cách nào để trích xuất dữ liệu XML trong Python?

Cách thức hoạt động của điều này là chúng tôi. .
Tải tài liệu XML của chúng ta vào bộ nhớ và xây dựng một đối tượng XML ElementTree
Sau đó, chúng tôi sử dụng phương thức find, chuyển vào bộ chọn XPath, cho phép chúng tôi chỉ định phần tử nào chúng tôi đang cố trích xuất
Nếu không tìm thấy phần tử, trả về Không có

Làm cách nào để cài đặt trình phân tích cú pháp XML trong Python?

Lộ trình tới Trình phân tích cú pháp XML trong Python .
Chọn đúng mô hình phân tích cú pháp XML. Mô hình đối tượng tài liệu (DOM).
Tìm hiểu về Trình phân tích cú pháp XML trong Thư viện chuẩn của Python. xml. nhà thờ. thiểu số. Triển khai DOM tối thiểu. .
Khám phá thư viện trình phân tích cú pháp XML của bên thứ ba. .
Liên kết dữ liệu XML với các đối tượng Python. .
Gỡ bom XML bằng trình phân tích cú pháp an toàn
Phần kết luận

Làm cách nào để đọc một tệp XML?

Tệp XML có thể được mở trong trình duyệt như IE hoặc Chrome, với bất kỳ trình soạn thảo văn bản nào như Notepad hoặc MS-Word . Ngay cả Excel cũng có thể được sử dụng để mở các tệp XML.