我有一个XML文件,我需要v=[7,8,9]
使用Python代码用向量中的值替换“类型”之后的值。我需要代码来识别单词“ type”,然后在下一行中更改参数的值。值2应替换为v[0]
,3应替换v[1]
以此类推。有没有办法用ElementTree或readlines做到这一点?
<Model>
<Function>
<param>x</param>
<param>type</param>
<param>2</param>
<param>5</param>
</Function>
<Function>
<param>y</param>
<param>type</param>
<param>3</param>
<param>2</param>
</Function>
<Function>
<param>z</param>
<param>type</param>
<param>7</param>
<param>9</param>
</Function>
</Model>
尝试这种方式:
from lxml import etree
doc = etree.fromstring(model)
v = [7, 8, 9]
targets = doc.xpath('//Model/Function/param[.="type"]')
for target in targets:
chn = target.xpath('following-sibling::*[1]')[0]
chn.text = str(v.pop(0))
print(etree.tostring(doc).decode())
输出:
<Model>
<Function>
<param>x</param>
<param>type</param>
<param>7</param>
<param>5</param>
</Function>
<Function>
<param>y</param>
<param>type</param>
<param>8</param>
<param>2</param>
</Function>
<Function>
<param>z</param>
<param>type</param>
<param>9</param>
<param>9</param>
</Function>
</Model>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句