使用elementree,读取标签文本的最简单方法是执行以下操作:
import elementtree.ElementTree as ET
sKeyMap = ET.parse("KeyMaps/KeyMap_Checklist.xml")
host = sKeyMap.findtext("/BrowserInformation/BrowserSetup/host")
现在我想更新同一个文件中的文本,希望不必像以下那样重写它:
host = "4444"
sKeyMap.replacetext("/BrowserInformation/BrowserSetup/host")
有什么想法吗?
提前谢谢 克里斯托弗答案 0 :(得分:1)
如果要更新文本文件中<host>
元素的值,则应使用find()
获取元素的句柄,而不是仅使用findtext()
阅读文本。获得元素后,您可以使用element.text
轻松获取文本。由于您拥有该元素,因此您可以轻松地重置其值,如下所示:
import elementtree.ElementTree as ET
sKeyMap = ET.parse("KeyMaps/KeyMap_Checklist.xml")
host_element = sKeyMap.find("/BrowserInformation/BrowserSetup/host")
host = host_element.text
print host
# Now reset the the text of the <host> element
host = "4444"
host_element.text = host
答案 1 :(得分:1)
newXmlContent = ET.tostring(sKeyMap)
fileObject = open("KeyMaps/newKeyMap_Checklist.xml","w") #note I used a different filename for testing!
fileObject.write(newXmlContent)
fileObject.close()