[英]parsing XML with python using ElementTree
我有一個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>
現在,我需要通過使用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'))
所以我剛剛測試了您的代碼。 工作正常。
>>> 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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.