我有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>
。请帮帮我。谢谢。
答案 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