Есть ли простой способ получить доступ к родительскому элементу элемента
Например:
<A>
<B id = "254">
<Z>12.34</Z>
<C>Lore</C>
<D>9</D>
</B>
</A>
За <B>
хочу получить <A>
и за <Z>, <C>, <D>
хочу получить <B>
Извините, забыл вставить, теперь надо добавить
Вы тоже забыли тег python -_-
Разве тег elementtree не указывает на Python?!
Похоже на дубликат stackoverflow.com/q/2170610/407651
Вы можете попробовать использовать сокращенный синтаксис XPath ..
.
Это будет что-то вроде:
.//B/..
(Он начинается с .
, потому что ElementTree не допускает абсолютного пути к элементу.)
Пример:
import xml.etree.ElementTree as ET
xml = """
<A>
<B id = "254">
<Z>12.34</Z>
<C>Lore</C>
<D>9</D>
</B>
</A>
"""
root = ET.fromstring(xml)
for elem_name in ['B', 'Z']:
# Example xpath: .//Z/..
print(f"Parent of '{elem_name}': " + root.find(f".//{elem_name}/..").tag)
Это печатает:
Parent of 'B': A
Parent of 'Z': B
Если вы можете использовать lxml, у него есть удобный метод getparent() (плюс полная поддержка xpath 1.0 и поддержка расширений exslt).
Похоже, приговор не окончен
For I want to get and for , , I want to get