如何在 Python 中將列表轉換為 XML?
可擴充套件標記語言 (XML) 是一種流行的資料交換格式,在許多應用程式中使用。它提供了一種標準化的表示資料的方式,可以輕鬆地被人和機器理解。在許多情況下,需要將儲存在 Python 列表中的資料轉換為 XML 格式以用於各種目的,例如資料交換或儲存。
在本文中,我們將探討使用 Python 內建庫將 Python 列表轉換為 XML 格式的不同方法。
以下是我們可以用來將 Python 列表轉換為 XML 的兩種不同方法。
使用 ElementTree 庫
匯入 xml.etree.ElementTree 庫。
為 XML 樹的根元素建立 ElementTree.Element 的例項。
遍歷列表併為列表中的每個專案建立子元素。
將子元素新增到根元素。
使用 ElementTree.ElementTree 物件將 XML 資料寫入檔案或字串。
請考慮以下程式碼以瞭解上述方法。
示例
import xml.etree.ElementTree as ET # Create a list my_list = ['apple', 'banana', 'orange'] # Create the root element of the XML tree root = ET.Element('fruits') # Iterate over the list and create child elements for item in my_list: fruit = ET.SubElement(root, 'fruit') fruit.text = item # Use the ElementTree object to write the XML data to a file or string tree = ET.ElementTree(root) tree.write('fruits.xml')
解釋
程式碼首先匯入 xml.etree.ElementTree 模組,該模組包含在 Python 標準庫中。
建立了一個包含三個字串元素的 Python 列表 my_list。
程式碼使用 ElementTree 的 Element() 方法建立 XML 樹的根元素,並將其分配給變數 root。傳遞給 Element() 的引數是根元素的標籤名稱。
然後,程式碼使用 for 迴圈遍歷列表中的每個專案。對於每個專案,它使用 root 物件的 SubElement() 方法在根元素下建立一個子元素。傳遞給 SubElement() 的第一個引數是子元素的標籤名稱。第二個引數 item 是子元素的文字內容。
最後,程式碼使用 ElementTree 的 ElementTree() 方法使用 root 作為根元素建立 ElementTree 物件。然後呼叫 ElementTree 的 write() 方法將 XML 資料寫入名為 fruits.xml 的檔案。
輸出
<fruits> <fruit>apple</fruit> <fruit>banana</fruit> <fruit>orange</fruit> </fruits>
使用 lxml 庫
匯入 lxml 庫。
為 XML 樹的根元素建立 lxml.Element 的例項。
遍歷列表併為列表中的每個專案建立子元素。
將子元素新增到根元素。
使用 lxml.etree.tostring() 方法將 XML 樹轉換為字串。
請考慮以下程式碼。
示例
import xml.etree.ElementTree as ET # Create a list my_list = ['apple', 'banana', 'orange'] # Create the root element of the XML tree root = ET.Element('fruits') # Iterate over the list and create child elements for item in my_list: fruit = ET.SubElement(root, 'fruit') fruit.text = item # Use the ElementTree object to write the XML data to a file or string tree = ET.ElementTree(root) tree.write('fruits.xml')
解釋
程式碼首先匯入 xml.etree.ElementTree 模組,該模組包含在 Python 標準庫中。
建立了一個包含三個字串元素的 Python 列表 my_list。
程式碼使用 ElementTree 的 Element() 方法建立 XML 樹的根元素,並將其分配給變數 root。傳遞給 Element() 的引數是根元素的標籤名稱。
然後,程式碼使用 for 迴圈遍歷列表中的每個專案。對於每個專案,它使用 root 物件的 SubElement() 方法在根元素下建立一個子元素。傳遞給 SubElement() 的第一個引數是子元素的標籤名稱。第二個引數 item 是子元素的文字內容。
最後,程式碼使用 ElementTree 的 ElementTree() 方法使用 root 作為根元素建立 ElementTree 物件。然後呼叫 ElementTree 的 write() 方法將 XML 資料寫入名為 fruits.xml 的檔案。
輸出
<fruits> <fruit>apple</fruit> <fruit>banana</fruit> <fruit>orange</fruit> </fruits>
結論
我們在本文中討論的兩種方法都涉及從列表建立 XML 樹結構,其中列表中的每個元素對應於 XML 樹中的一個子元素。