Python - 用lxml解析xml麻烦

时间:2014-12-14 22:08:28

标签: python xml lxml

我在这个问题上发现了很多问题,但我认为没有任何问题符合我的要求。我是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。我做错了什么以及如何解决它?

我对所有这些事情都很陌生,所以需要帮助。提前谢谢!

1 个答案:

答案 0 :(得分:2)

尝试使用:

group = parent.iterchildren(tag="group").next()

etree.SubElement做了完全不同的事情:

  

此函数创建一个元素实例,并将其附加到现有元素。

这显然不是你想要的。