【问题标题】: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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多