我在使用python中的元素树来访问曾孙时遇到困难。 具体来说,我想访问Ev,Ec,St,DU和Si的树。完整的xml附加到该线程的底部。
我尝试了以下代码,但未返回任何内容。
import xml.etree.ElementTree as ET
tree = ET.parse('shhs_eval.xml')
root = tree.getroot()
for ScoreEvent in root.findall('Sco'):
Event = ScoreEvent.find('Ev').text
Start = ScoreEvent.find('St').text
print(Event,Start)
预先感谢
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<PSG>
<Sof>Compumedics</Sof>
<Ep>30</Ep>
<Scs>
<Sco>
<Ev>Arousal</Ev>
<Ec>Arousal|Arousal ()</Ec>
<St>8062.4</St>
<Du>22.8</Du>
<Si>EMG</Si>
</Sco>
<Sco>
<Ev>N1</Ev>
<Evc>wl|Aw ()</Evc>
<St>8062.4</St>
<Du>22.8</Du>
<Si>EMG</Si>
</Sco>
</Scs>
</PSG>
答案 0 :(得分:0)
由于<Sco>
不是根的直接子代,因此您必须使用findall(.//<node>)
(深度优先搜索)来访问它。
import xml.etree.ElementTree as ET
tree = ET.parse('sshs_eval.xml')
root = tree.getroot()
for ScoreEvent in root.findall('.//Sco'):
Event = ScoreEvent.find('Ev').text
Start = ScoreEvent.find('St').text
print(Event,Start)