ElementTree 找到returnsNone?

ElementTree find returns None?

我正在使用 ElementTree 和 Python 来解析 XML 文件以查找标签 contentType.

的内容

这是 Python 行:

extensionType = ET.parse("src/" + str(filename)).find('contentType')

这里是 XML:

<?xml version="1.0" encoding="UTF-8"?>
<StaticResource xmlns="http://soap.sforce.com/2006/04/metadata">
    <cacheControl>Private</cacheControl>
    <contentType>image/jpeg</contentType>
</StaticResource>

我做错了什么?

谢谢!

到目前为止,您只是在解析 xml 文件。这是使用 xpath 获取元素的方法(请注意必须如何使用给定的 xml 命名空间 xmlns

import xml.etree.cElementTree as ET

tree = ET.parse('test.xml')

root = tree.getroot()

xmlns = {'soap': '{http://soap.sforce.com/2006/04/metadata}'}
ct_element = root.find('.//{soap}contentType'.format(**xmlns))
print(ct_element.text)