我需要通过循环元素来访问 XML 中的数据

问题描述 投票:0回答:1

我有一个 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 时获取元素。

有什么想法吗?非常感谢

python xml dataframe schema
1个回答
0
投票

你的意思是为什么

它找到了元素,但是没有内部元素

你有

Element
。您可以提取键/值和文本,它的子项等等 您也可以使用 xpath 获取所有
Data
标签:

root.xpath('/History/Env/EnvD/Data')
© www.soinside.com 2019 - 2024. All rights reserved.