如何从 python 中的 Elementtree 访问曾孙元素?
How to access greatgrandchild elements from Elementtree in python?
我在 python 中使用元素树访问曾孙时遇到困难。
具体来说,我想访问 Ev、Ec、St、DU 和 Si 的树。完整的 xml 附在该线程的底部。
我试过下面的代码,但是return什么都没有。
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>
由于 <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)
我在 python 中使用元素树访问曾孙时遇到困难。 具体来说,我想访问 Ev、Ec、St、DU 和 Si 的树。完整的 xml 附在该线程的底部。
我试过下面的代码,但是return什么都没有。
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>
由于 <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)