gpt4 book ai didi

python - 语法错误 : prefix 'a' not found in prefix map

转载 作者:太空狗 更新时间:2023-10-30 01:39:14 26 4
gpt4 key购买 nike

我正在尝试创建一个计算 pptx 中单词的函数文档。问题是我不知道如何只找到这种标签:

<a:t>Some Text</a:t>

当我尝试:print xmlTree.findall('.//a:t') , 它返回

SyntaxError: prefix 'a' not found in prefix map

你知道如何让它发挥作用吗?

这是函数:

def get_pptx_word_count(filename):
import xml.etree.ElementTree as ET
import zipfile
z = zipfile.ZipFile(filename)
i=0
wordcount = 0
while True:
i+=1
slidename = 'slide{}.xml'.format(i)
try:
slide = z.read("ppt/slides/{}".format(slidename))
except KeyError:
break
xmlTree = ET.fromstring(slide)
for elem in xmlTree.iter():
if elem.tag=='a:t':
#text = elem.getText
#num = len(text.split(' '))
#wordcount+=num

最佳答案

ElementTree内部指定命名空间的方式是:

{namespace}element

因此,您应该将查询更改为:

print xmlTree.findall('.//{a}t')

编辑:

正如@mxjn 所指出的,如果 a 是前缀而不是 URI,您需要插入 URI 而不是 a:

 print xmlTree.findall('.//{http://tempuri.org/name_space_of_a}t')

或者您可以提供前缀映射:

 prefix_map = {"a": "http://tempuri.org/name_space_of_a"}
print xmlTree.findall('.//a:t', prefix_map)

关于python - 语法错误 : prefix 'a' not found in prefix map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40772297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com