我有一个xml文件,其数据如下所示:
<SpeechSegment spkid="S0">
<Word dur="0.22" stime="0.44">oh</Word>
<Word dur="0.27" stime="1.67">bedankt</Word>
<Word dur="0.3" stime="2.03">voor</Word>
<Word dur="0.53" stime="2.61">deelname</Word>
</SpeechSegment>
我想要做的是计算每段的单词,如果有超过三个单词,则插入另一个&#34; SpeechSegment&#34;标签。所以我的首选输出是这样的:
<SpeechSegment spkid="S0">
<Word dur="0.22" stime="0.44">oh</Word>
<Word dur="0.27" stime="1.67">bedankt</Word>
<Word dur="0.3" stime="2.03">voor</Word>
#count is more than 3
</SpeechSegment><SpeechSegment spkid="S0">
<Word dur="0.53" stime="2.61">deelname</Word>
</SpeechSegment>
我尝试使用以下代码完成此操作:
import xml.etree.ElementTree as ET
raw = ET.parse("Interview_short.xml")
root = raw.getroot()
for child in root:
print(child)
count_list = 0
for item in child:
print(item)
count_list = count_list + 1
if count_list > 2:
#add speech segment tag
我有问题
print(child)
给了我这个:
<Element 'SpeechSegment' at 0x20e3cf8>.
我正在寻找
<SpeechSegment spkid="S0">.
在项目之后添加.text不起作用。对这里出了什么问题的想法?
答案 0 :(得分:0)
您可以通过在元素上调用 .attrib 来访问标记的属性。在您的情况下, child.attrib 会返回字典 {&#39; spkid&#39;:&#39; S0&#39;} 。
现在,您可以按照python的正常方式访问字典中的键和值。
child.attrib['spkid']
希望有所帮助。
如果您还询问如何添加新标签,请在您的问题中指明。