使用ElementTree分析XML与python
问题描述:
我有一个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'))
答
所以我刚刚测试了你的代码。它工作正常。
>>> 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')
我测试你的代码,我得到两行:“选择”和“插入”。 – idjaw
为什么我没有得到输出 – newbie