在python中使用Etree解析XML配置文件

在python中使用Etree解析XML配置文件,python,xml,config,lxml,xml.etree,Python,Xml,Config,Lxml,Xml.etree,请帮助我使用lxml etree解析以下原型的配置文件。我尝试了for event,元素和tostring。不幸的是,我不需要文本,但需要之间的XML <template name> <config> </template> 因为我是XML和python的新手,所以我不知道该怎么做。以下是配置文件: <Templates> <template name="config1"> <request>

请帮助我使用lxml etree解析以下原型的配置文件。我尝试了for event,元素和tostring。不幸的是,我不需要文本,但需要之间的XML

<template name> 
   <config>
 </template> 
因为我是XML和python的新手,所以我不知道该怎么做。以下是配置文件:

<Templates>

  <template name="config1">

    <request>

      <password>pass</password>

      <userName>username</userName>

      <appID>someapp</appID>

    </request>

  </template>

  <template name="config2">

    <request>

      <password>pass1</password>

      <userName>username1</userName>

      <appID>someapp</appID>

    </request>

  </template>

</Templates>
输出:

     config2

    <request>

         <password>pass1</password>

          <userName>username1</userName>

          <appID>someapp</appID>

    </request>
config2
通行证1
用户名1
someapp

您可以尝试迭代XML中的所有
模板
元素,并使用以下代码解析它们:

for template in root.iterfind("template"):
    name = template.get("name")
    request = template.find(requst)
    password = template.findtext("request/password")
    username = ...
    ...
    # Do something with the values

您可以尝试使用
get('name',default='')
而不是
['name']


要获取标记中的文本,请使用
.text

我不明白,您希望得到什么输出?嘿,FC,刚刚添加了请求的输出。嘿,再次感谢。我可以做。我已经把答案和我的问题贴在一起了。请检查嘿,默认的东西是有用的,我可以用它处理错误。谢谢
    config_tree = etree.parse(token_template_file)
    for template in config_tree.iterfind("template"):

        if template.get("name") == "config2":
            element = etree.tostring(template.find("request"))

            print (template.get("name"))
            print (element)  
     config2

    <request>

         <password>pass1</password>

          <userName>username1</userName>

          <appID>someapp</appID>

    </request>
for template in root.iterfind("template"):
    name = template.get("name")
    request = template.find(requst)
    password = template.findtext("request/password")
    username = ...
    ...
    # Do something with the values