[英]value not getting updated in ElementTree in lxml
I'm using lxml in python. 我在python中使用lxml。
from lxml import etree
d = etree.parse("input.xml")
t1 = etree.Element('year')
t2 = etree.Element('gdppc')
t1.text = '2016'
t2.text = '123456'
When I print t1 and t2, 当我打印t1和t2时,
print etree.tostring(t1)
print etree.tostring(t2)
Correct output is printed. 打印正确的输出。 But it's not getting updated in 'd'. 但是它并没有在'd'中得到更新。
print etree.tostring(d)
input.xml: input.xml:
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
</data>
How to update it in 'd'? 如何在“ d”中更新它?
d
is not related to t1
or t2
in any way. d
与t1
或t2
毫无关系。 By doing etree.Element('year')
or etree.Element('gdppc')
you are initializing new independent elements . 通过执行etree.Element('year')
或etree.Element('gdppc')
您正在初始化新的独立元素 。 Instead, if you want to update existing year
or gdppc
elements inside d
, find them first: 相反,如果要更新d
现有的year
或gdppc
元素,请首先找到它们:
d = etree.parse("input.xml")
t1 = d.find('.//year')
t2 = d.find('.//gdppc')
t1.text = '2016'
t2.text = '123456'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.