2015-10-10 85 views
0

我有XML文件,它看起來像這樣:ElementTree的,如何找到與鄰居元素

<ROWSET> 
<ROW> 
<element>Element1</element> 
<element_id>01</element_id> 
</ROW> 
<ROW> 
<element>Element2</element> 
<element_id>02</element_id> 
</ROW> 
<ROW> 
<element>Element3</element> 
<element_id>03</element_id> 
</ROW> 
</ROWSET> 

<element>我從形式取值。現在我需要知道這個元素的<element_id>。請幫助我。謝謝。

回答

1

您可以使用XPath謂詞獲取某個子元素具有某個值的父元素,例如//parent[child='certain_value']。然後從這一點開始,您可以簡單地返回同一個父級的其他子元素,這樣整個XPath就會看起來像這樣//parent[child='certain_value']/another_child

全部工作演示具體到你的情況下,例如:

from xml.etree import ElementTree as ET 

source = '''<ROWSET> 
<ROW> 
<element>Element1</element> 
<element_id>01</element_id> 
</ROW> 
<ROW> 
<element>Element2</element> 
<element_id>02</element_id> 
</ROW> 
<ROW> 
<element>Element3</element> 
<element_id>03</element_id> 
</ROW> 
</ROWSET>''' 
root = ET.fromstring(source) 
target_element_value = 'Element2' 
result = root.find('.//ROW[element="' + target_element_value + '"]/element_id') 
print(result.text) 

輸出:

02 
+0

謝謝你,它的工作! –