简体   繁体   English

使用ElementTree使用python解析XML

[英]parsing XML with python using ElementTree

I have an XML file which is shown below. 我有一个XML文件,如下所示。

<queries>
 <query name="Select" statement="select * from customer_organization">
  <filters>
   <filter id="Select" name="Customer" type="text"></filter>
   <filter id="Select" name="Start Date" type="date"></filter>
   <filter id="Select" name="End Date" type="date"></filter>
  </filters>
 </query>
 <query name="Insert" statement="insert into customer_organization">
  <filters>
   <filter id="Insert" name="From Date" type="date"></filter>
   <filter id="Insert" name="To Date" type="date"></filter>
  </filters>
 </query>
</queries>

Now I need to get the names in the "query" tag by parsing it with python.I have tried with elementtree.But it is displaying nothing on my console.Can you please help me with it as I am newbie to python. 现在,我需要通过使用python进行解析来获取“ query”标签中的名称。我尝试了elementtree。但是它在控制台上什么都没有显示。由于我是python的新手,所以请您提供帮助。

import xml.etree.ElementTree
e = xml.etree.ElementTree.parse('form.xml').getroot()
for s in e.findall('query'):
    print(s.get('name'))

So I've just tested your code. 所以我刚刚测试了您的代码。 It works fine. 工作正常。

>>> Select
>>> Insert

Another approach is to use xpath() 另一种方法是使用xpath()

import lxml.html

ttt = """<queries>
 <query name="Select" statement="select * from customer_organization">
  <filters>
   <filter id="Select" name="Customer" type="text"></filter>
   <filter id="Select" name="Start Date" type="date"></filter>
   <filter id="Select" name="End Date" type="date"></filter>
  </filters>
 </query>
 <query name="Insert" statement="insert into customer_organization">
  <filters>
   <filter id="Insert" name="From Date" type="date"></filter>
   <filter id="Insert" name="To Date" type="date"></filter>
  </filters>
 </query>
</queries>"""


page = lxml.html.fromstring(ttt)

print page.xpath('.//query/@name')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM