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

3 投票
1 回答
6826 浏览
提问于 2025-04-15 20:34

我正在寻找一些例子,想知道怎么修改一个已有的xml文件中的元素值。

这里有一个xml的例子:

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

如果我想在一个Python脚本中,用DOM来把作者元素的值'John Smith'替换成'Jim Johnson',我该怎么做呢?我试着找过相关的例子,但一直没找到。任何帮助都会非常感激。

祝好,
Rylic

1 个回答

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"

撰写回答