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ó Show
Ví dụ: một tệp XML như thế này
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
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
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
Cấu trúc của tài liệu XMLTấ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ữ PythonNgoà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 ElementTreeThe sample XML document below contains information about books with 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ó
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 forSử 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ử
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
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ử 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
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. |