gpt4 book ai didi

python - 使用 Python 动态替换 XML 中的文本

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:59 24 4
gpt4 key购买 nike

我有以下 XML 文件,该文件较长,但我只挑出要更改的部分。我喜欢将文本从“false”更改为“true”并写回相同的文件名。我已经搜索并阅读了一些线程,最接近的是下面的代码,但它并没有按照我想要的方式运行。

这是文件:

<settings>
<setting id="HomeMenuNoWeatherButton" type="bool">false</setting>
<setting id="HomeMenuNoPicturesButton" type="bool">false</setting>
<setting id="HomeMenuNoMusicButton" type="bool">false</setting>
</settings>

我从其中一个线程中尝试过的代码:

from xml.etree import ElementTree as et
tree = et.parse('path to settings.xml')
tree.find('settings/setting id="HomeMenuNoWeatherButton" type="bool"').text = 'true'
tree.find('settings/setting id="HomeMenuNoPicturesButton" type="bool"').text = 'true'
tree.find('settings/setting id="HomeMenuNoMusicButton" type="bool"').text = 'true'
tree.write('path to settings.xml')

我希望文件是:

<settings>
<setting id="HomeMenuNoWeatherButton" type="bool">true</setting>
<setting id="HomeMenuNoPicturesButton" type="bool">true</setting>
<setting id="HomeMenuNoMusicButton" type="bool">true</setting>
</settings>

最佳答案

您的选择器表达式不是有效的 XPath表达。使用 [] 作为过滤器谓词,使用 @ 作为属性,例如:

tree = et.parse('path to settings.xml')
root = tree.getroot()
xpath = 'setting[@id="HomeMenuNoWeatherButton" and @type="bool"]'
root.find(xpath).text = 'true'

关于python - 使用 Python 动态替换 XML 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com