Как обновить текст тега в XML с помощью Elementree - PullRequest
2 голосов
/ 11 июня 2010

Используя 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")

Есть идеи?

Спасибо заранее Christopher

Ответы [ 2 ]

1 голос
/ 13 июня 2010

построение на примере Тендай, может быть, попробовать что-то вроде:

newXmlContent = ET.tostring(sKeyMap)
fileObject = open("KeyMaps/newKeyMap_Checklist.xml","w") #note I used a different filename for testing!
fileObject.write(newXmlContent)
fileObject.close()
1 голос
/ 11 июня 2010

Если вы хотите обновить значение элемента <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
...