2015-10-04 61 views
1

我有一个XML文件,如下所示。使用ElementTree分析XML与python

<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> 

现在我需要用python.I解析它来获取“查询”标签的名字与曾尝试elementtree.But其上显示什么我console.Can请你帮我一下吧,因为我是python的新手。

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

我测试你的代码,我得到两行:“选择”和“插入”。 – idjaw

+0

为什么我没有得到输出 – newbie

回答

0

所以我刚刚测试了你的代码。它工作正常。

>>> Select 
>>> Insert 

另一种方法是使用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')