使用DOM修改现有XML文件中的元素值
我正在寻找一些例子,想知道怎么修改一个已有的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"