我使用lxml.etree构建了一个xml文件,结果如下:
<BigData>
<user>
<enum>
<tree>sometext</tree>
</enum>
</user>
</BigData>
我正在尝试输入一个条目并提出以下建议:
<BigData>
<user>**this_is_the_extra_text**
<enum>
<tree>sometext</tree>
</enum>
</user>
</BigData>
关于如何执行此操作的任何想法?如果我使用user = SubElement(user,BigData).text ='this_is_the_extra_text',则会收到错误消息。注意:我只想在那里输入纯文本,而不是新的xml条目。
谢谢!
假设这user
是一个变量引用<user>
元素,则只需设置其text
属性即可将文本节点添加为第一个子元素。
这是演示的设置:
>>> from xml.etree import ElementTree as ET
>>> root = ET.Element('BigData')
>>> user = ET.SubElement(root, 'user')
>>> enum = ET.SubElement(user, 'enum')
>>> print ET.tostring(root)
<BigData><user><enum /></user></BigData>
设置后的输出如下user.text
:
>>> user.text = 'this_is_the_extra_text'
>>> print ET.tostring(root)
<BigData><user>this_is_the_extra_text<enum /></user></BigData>
但是,如果要在其他子元素之后添加文本节点(换句话说,文本节点不会成为第一个子tail
元素),则需要设置前面元素的属性。例如,在enum
元素之后添加文本节点的工作方式如下:
>>> enum.tail = 'this_is_the_extra_text'
>>> print ET.tostring(root)
<BigData><user><enum />this_is_the_extra_text</user></BigData>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句