我在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'
当我打印t1和t2时,
print etree.tostring(t1)
print etree.tostring(t2)
打印正确的输出。但它没有得到更新,
。print etree.tostring(d)
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>
如何在&#39; d&#39;?
中更新它答案 0 :(得分:0)
d
以任何方式与t1
或t2
无关。通过执行etree.Element('year')
或etree.Element('gdppc')
,您初始化新的独立元素。相反,如果您要更新year
中的现有gdppc
或d
元素,请先找到它们:
d = etree.parse("input.xml")
t1 = d.find('.//year')
t2 = d.find('.//gdppc')
t1.text = '2016'
t2.text = '123456'