2

使用 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")

有任何想法吗?

提前谢谢克里斯托弗

4

2 回答 2

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
于 2010-06-10T22:01:34.127 回答
1

以 Tendayi 的示例为基础,可以尝试以下操作:

newXmlContent = ET.tostring(sKeyMap)
fileObject = open("KeyMaps/newKeyMap_Checklist.xml","w") #note I used a different filename for testing!
fileObject.write(newXmlContent)
fileObject.close()
于 2010-06-13T06:08:58.753 回答