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