首页 > 解决方案 > 在python中具有相似名称时修改xml元素

问题描述

我需要使用 ElementTree 修改 xml 文件中函数的参数,而元素具有相似的名称。在此示例中,我只想更改数字 2 并保留其他数字。可能吗?

<Model>
    <Function>
      <param>x</param>
      <param>type</param>
      <param>2</param>
      <param>5</param>
     </Function>
</Model>

标签: pythonxmlxml-parsingelementtree

解决方案


只是一个例子,虽然有点晚了。

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>

推荐阅读