【问题标题】:Changing element value on existing XML file using python [duplicate]使用python更改现有XML文件的元素值[重复]
【发布时间】:2014-02-24 21:46:36
【问题描述】:

我真的是 python 的新手。我需要在现有的 xml 文件中写入一些字符串。

我的 XML 结构是这样的:

    <koza>
      <colors>
        <color name="one" **value="#00FF00"** />
        <color name="two" value="#a12345" />
        <color name="three" value="#c2c145" />
        <color name="four" value="#315a25" />
        ...
      </colors>
    </koza>

我只需要在一行中更改值,例如,在第一行将“#00FF00”更改为“#FFFFFF”。

有没有简单的代码可以做到这一点?

谢谢!

【问题讨论】:

  • 顺便说一句,您如何准确定义“第一行”很重要。你识别它是因为它是名为“一”的颜色吗?因为是原值#00FF00的颜色? &lt;colors&gt; 元素的第一个子元素?还有什么?

标签: python xml


【解决方案1】:
import lxml.etree

# input
doc = lxml.etree.parse('input_file.xml'))

# modification
for el in doc.xpath("//color[@name='one']"):
  el.attrib['value'] = '#FFFFFFFF'

# output
open('output_file.xml', 'w').write(lxml.etree.tostring(doc))

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 2020-06-18
  • 1970-01-01
  • 2016-04-05
相关资源
最近更新 更多