簡體   English   中英

使用ElementTree使用python解析XML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM