跳過到頁腳內容
PYTHON 幫助

xml.etree Python(開發人員如何工作)

XML(可擴展標記語言)是一種流行且靈活的格式,用於在資料處理和文件生成中表示結構化資料。 標準函式庫包含xml.etree ,這是一個 Python 函式庫,它為開發人員提供了一套強大的工具,用於解析或建立 XML 資料、操作子元素以及以程式方式產生 XML 文件。

結合 IronPDF(一個用於建立和編輯 PDF 文件的 .NET 庫),開發人員可以利用xml.etree和 IronPDF 的綜合功能來加速 XML 元素物件資料處理和動態 PDF 文件產生。 在本深入指南中,我們將深入了解xml.etree Python 的世界,探索其主要特性和功能,並向您展示如何將其與 IronPDF 集成,從而解鎖資料處理的新可能性。

什麼是xml.etree

xml.etree是 Python 標準函式庫的一部份。 它帶有.etree後綴,也稱為 ElementTree,它提供了一個簡單有效的 ElementTree XML API,用於處理和修改 XML 文件。 它使程式設計師能夠以分層樹狀結構與 XML 資料進行交互,從而簡化 XML 檔案的導航、修改和程式化生成。

雖然xml.etree輕易易用,但它提供了強大的 XML 根元素資料處理功能。 它提供了一種從文件、字串或類似文件的內容解析 XML 資料文件的方法。 解析後的 XML 檔案以Element物件樹的形式顯示。 之後,開發人員可以瀏覽此樹狀結構,存取元素和屬性,並執行不同的操作,例如編輯、刪除或新增元素。

! xml.etree Python(開發者使用方法):圖 1 - xml.etree - 通用元素結構建構器網頁

xml.etree的特性

解析 XML 文檔

xml.etree中提供了從字串、檔案或類似檔案的物件解析 XML 文件的方法。 可以使用parse()函數處理 XML 材料,該函數還會產生一個ElementTree對象,該物件表示已解析的 XML 文檔,其中包含一個有效的Element物件。

導航 XML 樹

開發人員可以使用xml.etree來遍歷 XML 樹的元素,並在文件處理完成後使用find()findall()iter()等函數。 透過這些方法,可以根據標籤、屬性或 XPath 表達式輕鬆存取某些元素。

修改 XML 文檔

在 XML 文件中,可以使用xml.etree新增、編輯和刪除元件和屬性。 透過程式設計方式改變 XML 樹固有的層次化資料格式、結構和內容,可以實現資料修改、更新和轉換。

XML文檔序列化

xml.etree允許在修改 XML 文件後,使用ElementTree.write()等函數將 XML 樹序列化為字串或類似檔案的物件。 這使得開發人員能夠建立或修改 XML 樹,並從中產生 XML 輸出。

XPath 支援

xml.etree提供了 XPath(一種用於從 XML 文件中選擇節點的查詢語言)的支援。 開發人員可以使用 XPath 表達式來查詢和篩選 XML 樹中的項目,從而執行複雜的資料檢索和操作活動。

迭代解析

借助xml.etree對迭代解析的支持,開發人員可以按順序處理 XML 文檔,而無需一次性將整個文檔載入記憶體。 這對於有效管理大型 XML 檔案非常有幫助。

命名空間支持

開發人員可以使用xml.etree對 XML 命名空間的支持,處理使用命名空間進行元素和屬性標識的 XML 文件。 它提供了解析預設 XML 命名空間前綴和在 XML 文件中指定命名空間的方法。

錯誤處理

xml.etree中包含了對不正確的 XML 文件和解析錯誤的錯誤處理功能。 它提供了錯誤管理和捕獲技術,保證了在處理 XML 資料時的可靠性和穩健性。

相容性和便攜性

由於xml.etree是 Python 標準函式庫的一個元件,因此無需任何進一步安裝即可在 Python 程式中立即使用。 它具有便攜性,並且與許多 Python 設定相容,因為它既適用於 Python 2 也適用於 Python 3。

建立和配置xml.etree

建立 XML 文件

透過建立表示匯入 XML 樹元素的對象,並將它們附加到根元素,即可產生 XML 文件。 以下是建立 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

將 XML 文件寫入文件

ElementTree物件的write()函數可用來寫入 XML 檔案:

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

最終,將在名為"catalog.xml"的檔案中建立 XML 文件。

解析 XML 文檔

ElementTree使用parse()函數解析 XML 資料:

# 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

XML 文件"catalog.xml"會以此方式解析,從而得到 XML 樹的根元素。

訪問元素和屬性

利用Element物件提供的各種技術和功能,您可以存取 XML 文件的元素和屬性。 例如,要查看第一本書的標題:

# 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

修改 XML 文檔

可以透過新增、變更或刪除元件和屬性來修改 XML 文件。 例如,要更改第二本書的作者:

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

序列化 XML 文檔

ElementTree模組的tostring()函數可用來將 XML 文件序列化為字串:

# 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

開始使用 IronPdf

什麼是 IronPDF?

! xml.etree Python(開發者使用方法):圖 2 - IronPDF 網頁

IronPDF是一個功能強大的 .NET 程式庫,用於以程式設計方式使用 C#、VB.NET 和其他 .NET 語言建立、編輯和變更 PDF 文件。 由於它為開發人員提供了動態創建高品質 PDF 的廣泛功能集,因此是許多程式的熱門選擇。

IronPDF 的主要功能

PDF產生:

使用 IronPDF,程式設計師可以建立新的 PDF 文檔,或將現有的 HTML 標籤、文字、圖像和其他文件格式轉換為 PDF。 此功能對於動態建立報表、發票、收據和其他文件非常有用。

HTML 轉 PDF:

IronPDF 讓開發人員能夠輕鬆地將 HTML 文件(包括 JavaScript 和 CSS 中的樣式)轉換為 PDF 文件。 這使得從網頁、動態生成的內容和 HTML 模板創建 PDF 成為可能。

PDF文件的修改和編輯:

IronPDF 提供了一套全面的功能,用於修改和更改預先存在的 PDF 文件。 開發人員可以合併多個 PDF 文件,將它們拆分成其他文檔,刪除頁面,並添加書籤、註釋和浮水印等功能,以根據自己的需求自訂 PDF。

IronPDF 和xml.etree合併

下一節將示範如何使用 IronPDF 根據解析後的 XML 資料產生 PDF 文件。 這表明,透過利用 XML 和 IronPDF 的優勢,您可以有效地將結構化資料轉換為專業的 PDF 文件。 以下是詳細的方法:

安裝

請確保在開始之前已安裝 IronPDF。 可以使用pip安裝:

pip install IronPdf
pip install IronPdf
SHELL

使用 IronPDF 和解析後的 XML 產生 PDF 文檔

IronPDF 可以根據處理後的 XML 中提取的資料建立 PDF 文件。 讓我們建立一個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")
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

這段 Python 程式碼會產生一個包含書名和作者的 HTML 表格,然後 IronPDF 將其轉換為 PDF 文件。 以下是上述程式碼產生的輸出。

輸出

! xml.etree Python(開發者使用方法):圖 3 - 輸出的 PDF

結論

! xml.etree Python(開發者使用方法):圖 4 - IronPDF 授權頁面

總之,對於希望解析 XML 資料並根據解析後的資料產生動態 PDF 文件的開發人員來說,IronPDF 和xml.etree Python 的組合將是一個強大的解決方案。 借助可靠且高效的xml.etree Python API,開發人員可以輕鬆地從 XML 文件中提取結構化資料。 然而,IronPDF 增強了這項功能,它能夠從已處理的 XML 資料建立美觀且可編輯的 PDF 文件。

xml.etree Python 和 IronPDF 攜手合作,讓開發人員能夠自動執行資料處理任務,從 XML 資料來源中提取有價值的見解,並透過 PDF 文件以專業且引人入勝的方式呈現這些見解。 無論是產生報表、建立發票或產生文檔, xml.etree Python 和 IronPDF 之間的協同作用都能在資料處理和文件產生方面開啟新的可能性。

IronPDF 包含終身許可證,捆綁購買價格相當合理。 這套裝物超所值,只需$799 (一次性購買即可在多個系統上使用)。 持有許可證的使用者可享有全天候線上技術支援。 有關費用的更多詳情,請訪問此網站。 請造訪此頁面以了解更多關於Iron Software產品的資訊。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。