问题是你没有有一个名为
groupId
的孩子,你有一个名为{http://maven.apache.org/POM/4.0.0}groupId
的孩子,因为etree不会忽略XML名称空间,它使用“通用名称”。请参阅 effbot 文档中的使用命名空间和限定名称。
为了扩展 abarnert 对 BeautifulSoup 的评论,如果你确实只是想要一个快速而肮脏的解决方案来解决问题,这可能是最快的方法。我已经实现了这个(用于个人脚本),它使用 bs4,您可以使用
遍历树element = dom.getElementsByTagNameNS('*','elementname')
这将使用任何名称空间引用 dom,如果您知道文件中只有一个名称空间,那么这会很方便,因此不会产生歧义。