gpt4 book ai didi

python - 使用 Python 在 XML 中查找和替换值

转载 作者:IT老高 更新时间:2023-10-28 22:17:31 25 4
gpt4 key购买 nike

我正在寻找使用 python 编辑 XML 文件。我想在标签中查找和替换关键字。过去,一位同事建立了模板 XML 文件并使用“查找和替换”程序来替换这些关键词。我想使用 python 来查找这些关键词并将其替换为值。我一直在自学 Elementtree 模块,但在尝试查找和替换时遇到了麻烦。我附上了我的 XML 文件的一些小片段。您会看到一些被 % 包围的变量(即 %SITEDESCR%)。这些是我想要替换的单词,然后将 XML 保存到一个新文件中。任何帮助或建议都会很棒。

谢谢,迈克

<metadata>
<idinfo>
<citation>
<citeinfo>
<origin>My Company</origin>
<pubdate>05/04/2009</pubdate>
<title>POLYGONS</title>
<geoform>vector digital data</geoform>
<onlink>\\C$\ArcGISDevelopment\Geodatabase\PDA_STD_05_25_2009.gdb</onlink>
</citeinfo>
</citation>
<descript>
<abstract>This dataset represents the mapped polygons developed from the field data for the %SITEDESCR%.</abstract>
<purpose>This dataset was created to accompany some stuff.</purpose>
</descript>
<timeperd>
<timeinfo>
<rngdates>
<begdate>%begdate%</begdate>
<begtime>unknown</begtime>
<enddate>%enddate%</enddate>
<endtime>unknown</endtime>
</rngdates>
</timeinfo>
<current>ground condition</current>
</timeperd>

最佳答案

基础知识:

from xml.etree import ElementTree as et
tree = et.parse(datafile)
tree.find('idinfo/timeperd/timeinfo/rngdates/begdate').text = '1/1/2011'
tree.find('idinfo/timeperd/timeinfo/rngdates/enddate').text = '1/1/2011'
tree.write(datafile)

如果标签名称是唯一的,您可以缩短路径。此语法查找树中任意深度级别的第一个节点。

tree.find('.//begdate').text = '1/1/2011'
tree.find('.//enddate').text = '1/1/2011'

另外,阅读 documentation ,特别是。 XPath支持定位节点。

关于python - 使用 Python 在 XML 中查找和替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523886/

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