2016-07-11 98 views
0

我想從一堆xml文件中提取一些數據。現在,問題是所有文件的結構不完全相同,因此,只是迭代孩子並提取值很困難。Xml - 使用Python查找元素標籤

是否有一個getElementByTag() Python的這種XML文件的方法?我已經看到,這種方法可用於C#,C++用戶,但找不到Python的任何內容。

任何幫助將不勝感激!

回答

2

是的,在包xml.etree中,您可以找到與XML相關的內置函數。 (也可用於python2)

您正在尋找的一個是findall

例如:

import xml.etree.ElementTree as ET 
tree = ET.fromstring(some_xml_data) 
all_name_elements = tree.findall('*/name') 

有了:

In [1]: some_xml_data = "<help><person><name>dean</name></person></help>" 

我得到如下:

In [10]: tree.findall("*/name") 
Out[10]: [<Element 'name' at 0x7ff921edd390>] 
+0

'findall'只搜索在孩子的水平。但是,我一直在尋找一直到樹底的東西。 –

+0

如果使用'findAll'作爲樹的根元素,它將搜索所有子元素。您也可以在ElementTree對象上使用它,而不是根元素,然後它還會搜索根。 –

+0

這對我不起作用。它只搜索兒童級別,沒有低於該級別。另外,您發佈的答案中的語法不正確。謝謝! –