原本以为用xpath语法可以轻松查找到子元素,没想到有问题。后面去看了ElementTree里find和findall的api文档和参考了通过’ElementTree’在Python中解析带有命名空间的XML | 码农家园
# 得到xml的命名空间
my_namespaces = dict([node for _, node in ET.iterparse(xml_path, events=['start-ns'])])
element.find('mis:ShotInfo//mis:precis//mis:Name', my_namespaces)
之所以这么麻烦是因为用findall找不到子元素,不知道是为什么。