ElementTree,如何查找邻居元素

时间:2015-10-10 20:25:34

标签: python xml elementtree

我有XML文件,它看起来像这样:

<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 个答案:

答案 0 :(得分: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