python - 使用 python 2.7 更新 xml 中的特定标签

标签 python xml python-2.7

嗨,我有一个像这样的 xml 我想更新标签之间的值。

<ABC>
    <CDF ExcludeDefaults="false" MaxServers="-1">
         <action type="update">
             <prime>f3f09ff2a2244343a0b6b30dbb79a56b</prime>
         </action>
    </CDF>
</ABC>

我在一个名为 close 的变量中有一些值。

关闭 = 'gdai55ff2a2244343a0b6b30dbb745rtdf' 。我想用分配给 close 的值更新 prime 标签。 更新后我希望我的 xml 采用以下格式

<ABC>
    <CDF ExcludeDefaults="false" MaxServers="-1">
         <action type="update">
             <prime>gdai55ff2a2244343a0b6b30dbb745rtdf</prime>
         </action>
    </CDF>
</ABC>

我想使用 python 代码来做到这一点。

最佳答案

这是一种简单的方法,使用正则表达式获取所需的文本,并将其替换为您想要的内容:

import re
f = open('xmlfile', 'r')
data = f.read()
f.close()

close = 'gdai55ff2a2244343a0b6b30dbb745rtdf'

reg = re.compile(r'<prime>(.*?)</prime>')
list = re.split(reg, data)
list[1] = '<prime>'+ close + '</prime>'
result = ''.join(list)
print result

输出将如下所示:

<ABC>
    <CDF ExcludeDefaults="false" MaxServers="-1">
         <action type="update">
             <prime>gdai55ff2a2244343a0b6b30dbb745rtdf</prime>
         </action>
    </CDF>
</ABC>

希望这有帮助。

关于python - 使用 python 2.7 更新 xml 中的特定标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22680763/

相关文章:

python - cubes.errors.ConfigurationError : config should be a ConfigParser instance, 但为 <type 'instance' >

java - Hibernate 和 MappingNotFoundException

xml - 如何参数化grails/groovy xml MarkupBuilder .builder语法?

python-2.7 - 以文件名作为列标题将多个 *.txt 文件读入 Pandas Dataframe

python - 格式化字符串

python - Pytest - 使用 asyncio 进行 python 测试

python - 从 Pytest fixture 中调用自定义函数

python - 'HiveContext' 对象没有属性 'jsonRDD' Spark 2.1.1

xml - 从多个 xml 文件中提取节点

python - 如何在 Python 中连接单个引号