我有一个 xml 文件,需要访问特定部分。
我通过以下方式接近它:
from lxml import objectify
path = xml_path
xml = objectify.parse(open(path))
root = xml.getroot()
# Access the list of 'Evt' elements in 'History'
events = root.getchildren()[1].History.getchildren()
但是结构如下所示
-History
|-Env
| |-EnvD
| |-Data
| |-Data
|-Env
|-EnvD
|-Data
|-Data
所以我需要循环每个 Env,EnVD,...以获取数据。
使用类似的东西
events = root.getchildren()[1].History.getchildren()
for event in events:
Data_elements = event.findall('.//Data')
无法找到元素,但没有内部元素。我需要使用
events = root.getchildren()[1].History.Env.EnvD.Data.getchildren()
在循环 Env 和 EnvD 时获取元素。
有什么想法吗?非常感谢
你的意思是为什么
它找到了元素,但是没有内部元素
?
你有
Element
。您可以提取键/值和文本,它的子项等等
您也可以使用 xpath 获取所有 Data
标签:
root.xpath('/History/Env/EnvD/Data')