使用DOM更改现有XML文件中的元素值

时间:2010-03-18 18:07:45

标签: python xml

我正在尝试查找如何更改现有xml文件元素值的示例。

使用以下xml示例:

<book>
  <title>My Book</title>
  <author>John Smith</author>
</book>

如果我想在使用DOM的Python脚本中用'Jim Johnson'替换作者元素值'John Smith',我该怎么做呢?我试图在这方面寻找示例,但未能这样做。任何帮助将不胜感激。

此致 Rylic

1 个答案:

答案 0 :(得分:5)

假设

s = '''
<book>
  <title>My Book</title>
  <author>John Smith</author>
</book>'''

DOM看起来像:

from xml.dom import minidom

dom = minidom.parseString(s) # or parse(filename_or_file)
for author in dom.getElementsByTagName('author'):
    author.childNodes = [dom.createTextNode("Jane Smith")]

但我鼓励您研究ElementTree,它使得使用XML变得轻而易举:

from xml.etree import ElementTree

et = ElementTree.fromstring(s) # or parse(filename_or_file)
for author in et.findall('author'):
    author.text = "Jane Smith"