Przejdź do treści stopki
POMOC DOTYCZąCA JęZYKA PYTHON

xml.etree Python (jak to działa dla programistów)

XML (eXtensible Markup Language) to popularny i elastyczny format służący do przedstawiania danych strukturalnych w przetwarzaniu danych i generowaniu dokumentów. Standardowa biblioteka zawiera xml.etree, bibliotekę języka Python, która zapewnia programistom potężny zestaw narzędzi do analizowania lub tworzenia danych XML, manipulowania elementami podrzędnymi oraz generowania dokumentów XML programowo.

W połączeniu z IronPDF, biblioteką .NET do tworzenia i edycji dokumentów PDF, programiści mogą wykorzystać połączone możliwości xml.etree i IronPDF w celu przyspieszenia przetwarzania danych obiektów elementów XML oraz dynamicznego generowania dokumentów PDF. W tym szczegółowym przewodniku zagłębimy się w świat xml.etree Python, poznamy jego główne cechy i funkcje oraz pokażemy, jak zintegrować go z IronPDF, aby odkryć nowe możliwości przetwarzania danych.

Czym jest xml.etree?

xml.etree jest częścią standardowej biblioteki języka Python. Posiada on przyrostek .etree, znany również jako ElementTree, który oferuje proste i skuteczne API ElementTree XML do przetwarzania i modyfikowania dokumentów XML. Umożliwia programistom interakcję z danymi XML w hierarchicznej strukturze drzewa, upraszczając nawigację, modyfikację i programowe generowanie plików XML.

Mimo że jest lekki i prosty w użyciu, xml.etree oferuje rozbudowaną funkcjonalność do obsługi danych elementu głównego XML. Umożliwia analizowanie dokumentów danych XML z plików, ciągów znaków lub elementów przypominających pliki. Wynikowy, przeanalizowany plik XML jest wyświetlany jako drzewo obiektów Element. Następnie programiści mogą poruszać się po tym drzewie, uzyskiwać dostęp do elementów i atrybutów oraz wykonywać różne czynności, takie jak edycja, usuwanie lub dodawanie elementów.

xml.etree Python (Jak to działa dla programistów): Rysunek 1 – xml.etree – strona internetowa poświęcona narzędziu Builder do tworzenia struktur elementów ogólnych

Funkcje xml.etree

Analiza dokumentów XML

Metody analizowania dokumentów XML z ciągów znaków, plików lub obiektów podobnych do plików są dostępne w xml.etree. Materiały XML można przetwarzać za pomocą funkcji parse(), która generuje również obiekt ElementTree reprezentujący przeanalizowany dokument XML z prawidłowym obiektem Element.

Poruszanie się po drzewach XML

Programiści mogą używać xml.etree do przeglądania elementów drzewa XML za pomocą funkcji takich jak find(), findall() i iter() po przetworzeniu dokumentu. Dzięki tym podejściom uzyskanie dostępu do określonych elementów na podstawie tagów, atrybutów lub wyrażeń XPath jest proste.

Modyfikowanie dokumentów XML

W dokumencie XML istnieją sposoby dodawania, edytowania i usuwania komponentów oraz atrybutów przy użyciu xml.etree. Programowa zmiana hierarchicznego formatu danych, struktury i treści drzewa XML umożliwia modyfikację, aktualizację i przekształcanie danych.

Serializacja dokumentów XML

xml.etree umożliwia serializację drzew XML do ciągów znaków lub obiektów typu plik przy użyciu funkcji takich jak ElementTree.write() po zmodyfikowaniu dokumentu XML. Umożliwia to programistom tworzenie lub modyfikowanie drzew XML oraz generowanie na ich podstawie danych wyjściowych w formacie XML.

Obsługa XPath

Obsługa XPath, języka zapytań służącego do wybierania węzłów z dokumentu XML, jest zapewniona przez xml.etree. Programiści mogą wykonywać zaawansowane operacje pobierania i manipulacji danymi, używając wyrażeń XPath do wyszukiwania i filtrowania elementów w drzewie XML.

Parsowanie iteracyjne

Zamiast ładować cały dokument do pamięci naraz, programiści mogą obsługiwać dokumenty XML sekwencyjnie dzięki obsłudze iteracyjnego parsowania przez xml.etree. Jest to bardzo pomocne w efektywnym zarządzaniu dużymi plikami XML.

Obsługa przestrzeni nazw

Programiści mogą pracować z dokumentami XML, które wykorzystują przestrzenie nazw do identyfikacji elementów i atrybutów, korzystając z obsługi przestrzeni nazw XML w xml.etree. Zapewnia sposoby rozwiązywania domyślnych prefiksów przestrzeni nazw XML oraz określania przestrzeni nazw wewnątrz dokumentu XML.

Obsługa błędów

Funkcje obsługi błędów dotyczących nieprawidłowych dokumentów XML i błędów parsowania są zawarte w xml.etree. Oferuje techniki zarządzania błędami i ich przechwytywania, gwarantując niezawodność i solidność podczas pracy z danymi XML.

Kompatybilność i przenośność

Ponieważ xml.etree jest składnikiem standardowej biblioteki języka Python, można go od razu używać w programach napisanych w tym języku bez konieczności dodatkowej instalacji. Jest przenośny i kompatybilny z wieloma środowiskami Pythona, ponieważ działa zarówno z Pythonem 2, jak i Pythonem 3.

Utwórz i skonfiguruj xml.etree

Utwórz dokument XML

Tworząc obiekty reprezentujące elementy drzewa XML importu i dołączając je do elementu głównego, można wygenerować dokument XML. Oto przykład tworzenia danych XML:

import xml.etree.ElementTree as ET

# Create a root element
root = ET.Element("catalog")

# Parent element
book1 = ET.SubElement(root, "book")
# Set attribute for book1
book1.set("id", "1")

# Child elements for book1
title1 = ET.SubElement(book1, "title")
title1.text = "Python Programming"
author1 = ET.SubElement(book1, "author")
author1.text = "John Smith"

# Parent element
book2 = ET.SubElement(root, "book")
# Set attribute for book2
book2.set("id", "2")

# Child elements for book2
title2 = ET.SubElement(book2, "title")
title2.text = "Data Science Essentials"
author2 = ET.SubElement(book2, "author")
author2.text = "Jane Doe"

# Create ElementTree object
tree = ET.ElementTree(root)
import xml.etree.ElementTree as ET

# Create a root element
root = ET.Element("catalog")

# Parent element
book1 = ET.SubElement(root, "book")
# Set attribute for book1
book1.set("id", "1")

# Child elements for book1
title1 = ET.SubElement(book1, "title")
title1.text = "Python Programming"
author1 = ET.SubElement(book1, "author")
author1.text = "John Smith"

# Parent element
book2 = ET.SubElement(root, "book")
# Set attribute for book2
book2.set("id", "2")

# Child elements for book2
title2 = ET.SubElement(book2, "title")
title2.text = "Data Science Essentials"
author2 = ET.SubElement(book2, "author")
author2.text = "Jane Doe"

# Create ElementTree object
tree = ET.ElementTree(root)
PYTHON

Zapisanie dokumentu XML do pliku

Do napisania pliku XML można użyć funkcji write() obiektu ElementTree:

# Write XML document to file
tree.write("catalog.xml")
# Write XML document to file
tree.write("catalog.xml")
PYTHON

W rezultacie dokument XML zostanie utworzony w pliku o nazwie "catalog.xml".

Analiza dokumentu XML

ElementTree analizowanie danych XML przy użyciu funkcji parse():

# Parse an XML document
tree = ET.parse("catalog.xml")
root = tree.getroot()
# Parse an XML document
tree = ET.parse("catalog.xml")
root = tree.getroot()
PYTHON

Dokument XML "catalog.xml" zostanie przeanalizowany w ten sposób, co da element główny drzewa XML.

Elementy i atrybuty dostępu

Korzystając z różnych technik i funkcji oferowanych przez obiekty Element, można uzyskać dostęp do elementów i atrybutów dokumentu XML. Na przykład, aby wyświetlić tytuł pierwszej książki:

# Reading single XML element
first_book_title = root[0].find("title").text
print("Title of first book:", first_book_title)
# Reading single XML element
first_book_title = root[0].find("title").text
print("Title of first book:", first_book_title)
PYTHON

Modyfikacja dokumentu XML

Dokument XML można modyfikować poprzez dodawanie, zmianę lub usuwanie komponentów i atrybutów. Aby na przykład zmienić autora drugiej książki:

# Modify XML document
root[1].find("author").text = "Alice Smith"
# Modify XML document
root[1].find("author").text = "Alice Smith"
PYTHON

Serializacja dokumentu XML

Funkcja tostring() modułu ElementTree może służyć do serializacji dokumentu XML do postaci ciągu znaków:

# Serialize XML document to string
xml_string = ET.tostring(root, encoding="unicode")
print(xml_string)
# Serialize XML document to string
xml_string = ET.tostring(root, encoding="unicode")
print(xml_string)
PYTHON

Pierwsze kroki z IronPDF

Czym jest IronPDF?

xml.etree Python (Jak to działa dla programistów): Rysunek 2 – Strona internetowa IronPDF

IronPDF to potężna biblioteka .NET do programowego tworzenia, edytowania i modyfikowania dokumentów PDF w językach C#, VB.NET i innych językach .NET. Ponieważ zapewnia programistom szeroki zestaw funkcji do dynamicznego tworzenia wysokiej jakości plików PDF, jest popularnym wyborem dla wielu programów.

Najważniejsze funkcje IronPDF

Generowanie plików PDF:

Korzystając z IronPDF, programiści mogą tworzyć nowe dokumenty PDF lub konwertować istniejące tagi HTML, tekst, obrazy i inne formaty plików do formatu PDF. Ta funkcja jest bardzo przydatna do dynamicznego tworzenia raportów, faktur, paragonów i innych dokumentów.

Konwersja HTML do PDF:

IronPDF ułatwia programistom przekształcanie dokumentów HTML, w tym stylów z JavaScript i CSS, w pliki PDF. Umożliwia to tworzenie plików PDF ze stron internetowych, treści generowanych dynamicznie oraz szablonów HTML.

Modyfikacja i edycja dokumentów PDF:

IronPDF zapewnia kompleksowy zestaw funkcji do modyfikowania i zmieniania istniejących dokumentów PDF. Programiści mogą łączyć kilka plików PDF, dzielić je na inne dokumenty, usuwać strony oraz dodawać zakładki, adnotacje i znaki wodne, a także korzystać z innych funkcji, aby dostosować pliki PDF do swoich potrzeb.

IronPDF i xml.etree połączone

W następnej sekcji zostanie pokazane, jak generować dokumenty PDF za pomocą IronPDF na podstawie przeanalizowanych danych XML. To pokazuje, że wykorzystując zalety zarówno XML, jak i IronPDF, można skutecznie przekształcać dane strukturalne w profesjonalne dokumenty PDF. Oto szczegółowa instrukcja:

Instalacja

Przed rozpoczęciem upewnij się, że masz zainstalowany IronPDF. Można ją zainstalować za pomocą pip:

pip install IronPdf
pip install IronPdf
SHELL

Generowanie dokumentu PDF za pomocą IronPDF przy użyciu przeanalizowanego XML

IronPDF może służyć do tworzenia dokumentów PDF na podstawie danych wyodrębnionych z pliku XML po jego przetworzeniu. Stwórzmy dokument PDF z tabelą zawierającą tytuły książek i nazwiska autorów:

from ironpdf import *     

# Sample parsed XML books data
books = [
    {'title': 'Python Programming', 'author': 'John Smith'},
    {'title': 'Data Science Essentials', 'author': 'Jane Doe'}
]

# Create HTML content for PDF from the parsed XML elements
html_content = """
<html>
    <body>
        <h1>Books</h1>
        <table border='1'>
            <tr><th>Title</th><th>Author</th></tr>
"""
# Iterate over books to add each book's data to the HTML table
for book in books:
    html_content += f"<tr><td>{book['title']}</td><td>{book['author']}</td></tr>"

# Close the table and body tags
html_content += """
        </table>
    </body>
</html>
"""

# Generate and save the PDF document
pdf = IronPdf()
pdf.HtmlToPdf.RenderHtmlAsPdf(html_content)
pdf.SaveAs("books.pdf")
from ironpdf import *     

# Sample parsed XML books data
books = [
    {'title': 'Python Programming', 'author': 'John Smith'},
    {'title': 'Data Science Essentials', 'author': 'Jane Doe'}
]

# Create HTML content for PDF from the parsed XML elements
html_content = """
<html>
    <body>
        <h1>Books</h1>
        <table border='1'>
            <tr><th>Title</th><th>Author</th></tr>
"""
# Iterate over books to add each book's data to the HTML table
for book in books:
    html_content += f"<tr><td>{book['title']}</td><td>{book['author']}</td></tr>"

# Close the table and body tags
html_content += """
        </table>
    </body>
</html>
"""

# Generate and save the PDF document
pdf = IronPdf()
pdf.HtmlToPdf.RenderHtmlAsPdf(html_content)
pdf.SaveAs("books.pdf")
PYTHON

Ten kod w języku Python generuje tabelę HTML zawierającą tytuły książek i nazwiska autorów, którą IronPDF następnie przekształca w dokument PDF. Poniżej znajduje się wynik wygenerowany na podstawie powyższego kodu.

Wynik

xml.etree Python (Jak to działa dla programistów): Rysunek 3 – Wygenerowany plik PDF

Wnioski

xml.etree Python (Jak to działa dla programistów): Rysunek 4 – Strona licencyjna IronPDF

Podsumowując, programiści, którzy chcą analizować dane XML i tworzyć dynamiczne dokumenty PDF na podstawie przeanalizowanych danych, znajdą doskonałe rozwiązanie w połączeniu IronPDF i xml.etree Python. Dzięki niezawodnemu i wydajnemu interfejsowi API xml.etree w języku Python programiści mogą z łatwością wyodrębniać dane strukturalne z dokumentów XML. Jednak IronPDF rozszerza te możliwości, oferując możliwość tworzenia estetycznych i edytowalnych dokumentów PDF na podstawie przetworzonych danych XML.

W połączeniu xml.etree Python i IronPDF umożliwiają programistom automatyzację zadań związanych z przetwarzaniem danych, pozyskiwanie cennych informacji ze źródeł danych XML oraz prezentowanie ich w profesjonalny i atrakcyjny wizualnie sposób za pomocą dokumentów PDF. Niezależnie od tego, czy chodzi o generowanie raportów, tworzenie faktur czy dokumentacji, synergia między xml.etree Pythonem a IronPDF otwiera nowe możliwości w zakresie przetwarzania danych i generowania dokumentów.

IronPDF obejmuje dożywotnią licencję, która jest dostępna w przystępnej cenie w ramach pakietu. Pakiet ten stanowi doskonałą wartość, kosztując jedynie $799 (jednorazowy zakup dla kilku systemów). Osoby posiadające licencje mają całodobowy dostęp do pomocy technicznej online. Więcej informacji na temat opłat można znaleźć na tej stronie internetowej. Odwiedź tę stronę, aby dowiedzieć się więcej o produktach Iron Software.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie