【问题标题】:Modify xml element when having similar names in python在python中具有相似名称时修改xml元素
【发布时间】:2020-02-21 14:40:22
【问题描述】:
我需要使用 ElementTree 修改 xml 文件中函数的参数,而元素具有相似的名称。在此示例中,我只想更改数字 2 并保留其他数字。有可能吗?
<Model>
<Function>
<param>x</param>
<param>type</param>
<param>2</param>
<param>5</param>
</Function>
</Model>
【问题讨论】:
-
您可以使用 xpath 根据值2 选择正确的param 元素(请参阅here)。或者,您也可以选择第三次出现param(请参阅here)。获得元素后,使用ElementTrees 功能更改文本(请参阅here)。
标签:
python
xml
xml-parsing
elementtree
【解决方案1】:
只是一个例子,虽然有点晚了。
from simplified_scrapy import SimplifiedDoc, utils, req
html = '''
<Model>
<Function>
<param>x</param>
<param>type</param>
<param>2</param>
<param>5</param>
</Function>
</Model>
'''
doc = SimplifiedDoc(html)
# Use text 2
param = doc.getElementByText('2',tag='param')
# Use index
param = doc.selects('param')[2]
param.setContent('Modified')
print(doc.html)
结果:
<Model>
<Function>
<param>x</param>
<param>type</param>
<param>Modified</param>
<param>5</param>
</Function>
</Model>