[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 的文件可以寫得更清楚一點呀~
(本頁面已被瀏覽過 1,270 次)