[Python] 將 ElementTree 轉為 XML 字串

[Python] 將 ElementTree 轉為 XML 字串

今天在寫專案程式時,

一個問題時要將在記憶體中建立的 XML object 內容取出來…

平常比較常用的是 write() 寫到檔案去,

而要轉成字串的話查一查文件是要用 tostring()

 

不過 python 文件有個缺點就是有時看不太懂,

像下面這個函式宣告裡,就有點不確定那個 ElementTree 

  – 是 ElementTree 這個模組?

  – 還是用它產生出來的 ElementTree obect?

  – 還是 Element object?

xml.etree.ElementTree.tostring(element, encoding="us-ascii", method="xml")

 

跟 MSDN 比較起來,有型別的函式宣告其實還是有好處的,

至少我應該不會被這個宣告困惑,還得去 try-and-error… 

不過在這篇 stackoverflow: Convert Python ElementTree to string 

正好也看到正確用法了~

 

舉個例子,下面的小程式會建立一個 XML object:

import xml.etree.cElementTree as ET
root = ET.Element("Report")
ET.SubElement(root, "SHA1").text = "f34e0d7ef2e77e75ef6e73d2390214c4c890c177"
ET.SubElement(root, "Data").text = "Good"

 

而要取得這個 XML object 的對應字串內容,就用 xml.etree.ElementTree.tostring(element):

>>> print ET.tostring(root)
<Report><SHA1>f34e0d7ef2e77e75ef6e73d2390214c4c890c177</SHA1><Data>Good</Data></Report>

 

真希望 python 的文件可以寫得更清楚一點呀~

 

(本頁面已被瀏覽過 423 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料