我有一个xml,它的一部分如下所示:
<?xml version="1.0" encoding="UTF-8" ?>,
<Settings>,
<System>,
<Format>Percent</Format>,
<Time>12 Hour Format</Time>,
<Set>Standard</Set>,
</System>,
<System>,
<Format>Percent</Format>,
<Time>12 Hour Format</Time>,
<Set>Standard</Set>,
<Alarm>ON</Alarm>,
<Haptic>ON</Haptic>'
</System>
</Settings>
我想做的是使用xpath来指定路径 //Settings/System
并获取系统中的标记和值,以便我可以使用以下输出填充 Dataframe :
| Format | Time| Set| Alarm| Haptic|
|:_______|:____|:___|______|_______|
| Percent| 12 Hour Format| Standard| NaN| NaN|
| Percent| 12 Hour Format| Standard| ON| ON|
到目前为止,我看到的方法如下:
import xml.etree.ElementTree as ET
root = ET.parse(filename)
result = ''
for elem in root.findall('.//child/grandchild'):
# How to make decisions based on attributes even in 2.6:
if elem.attrib.get('name') == 'foo':
result = elem.text
这些方法明确提到 elem.attrib.get('name')
我无法在我的案例中使用,因为我的 /System
标签。所以我要问的是,是否有一种方法可以使用xpath(或其他任何我可以指定的方法) /System
获取所有元素及其值?
1条答案
按热度按时间wljmcqd81#
您的xml格式仍然不正确,但假设它是固定的,并且看起来像以前的版本,以下内容应该可以工作:
现在,代码本身:
输出: