ElementTree,如何找到邻居元素
ElementTree, how to find neighbor element
我有 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>
。请帮助我。谢谢。
您可以使用 XPath 谓词来获取某个子元素具有特定值的父元素,例如 //parent[child='certain_value']
。然后从这一点开始,您可以简单地 return 同一父元素的另一个子元素,因此整个 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
我有 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>
。请帮助我。谢谢。
您可以使用 XPath 谓词来获取某个子元素具有特定值的父元素,例如 //parent[child='certain_value']
。然后从这一点开始,您可以简单地 return 同一父元素的另一个子元素,因此整个 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