我在这个问题上发现了很多问题,但我认为没有任何问题符合我的要求。我是lxml的新手,所以需要一些帮助。
我的users.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<user>
<login>elena</login>
<password>elena</password>
<group>1</group>
</user>
<user>
<login>anele</login>
<password>anele</password>
<group>2</group>
</user>
</root>
故障功能:
def analize_data(login):
doc = etree.parse("/myapp/users.xml")
for elem in doc.iter(tag='login'):
if elem.text == login:
parent = elem.getparent()
group = etree.SubElement(parent, 'group')
return group.text
我需要什么: 找到一个登录传递给function的用户标签,并获取该用户的 group 子元素的文本。但是这个函数在测试时返回None。我做错了什么以及如何解决它?
我对所有这些事情都很陌生,所以需要帮助。提前谢谢!
答案 0 :(得分:2)
尝试使用:
group = parent.iterchildren(tag="group").next()
etree.SubElement
做了完全不同的事情:
此函数创建一个元素实例,并将其附加到现有元素。
这显然不是你想要的。