使用Python更改XML文件中包含的文本的最佳方法是什么?

2024-05-23 21:49:44 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个名为“MyData.XML”的现有普通XML文件,其中包含以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<myElement>foo</myElement>

我想将“foo”的文本值更改为“bar”,结果如下:

<?xml version="1.0" encoding="utf-8" ?>
<myElement>bar</myElement>

完成后,我想保存更改。

完成这一切最简单最容易的方法是什么?


Tags: 文件方法文本fooversionbarxmlutf
3条回答

对于快速、非关键的XML操作,我非常喜欢P4X。让我们这样写:

import p4x
doc = p4x.P4X (open(file).read)
doc.myElement = 'bar'

使用Python的minidom

基本上,您将采取以下步骤:

  1. 将XML数据读入DOM对象
  2. 使用DOM方法修改文档
  3. 将新的DOM对象保存到新的XML文档

在这个过程中,python规范应该很好地控制住您的手。

这是我根据@Ryan's answer写的:

from xml.dom.minidom import parse
import os

# create a backup of original file
new_file_name = 'MyData.xml'
old_file_name = new_file_name + "~"
os.rename(new_file_name, old_file_name)

# change text value of element
doc = parse(old_file_name)
node = doc.getElementsByTagName('myElement')
node[0].firstChild.nodeValue = 'bar'

# persist changes to new file
xml_file = open(new_file_name, "w")
doc.writexml(xml_file, encoding="utf-8")
xml_file.close()

不确定这是否是最简单和最简单的方法,但它确实有效。(@Javier's answer代码行较少,但需要非标准库)

相关问题 更多 >