使用以下XML文件,即vmware OVF:
<File ovf:href="foo.vmdk"/>
我需要将foo.vmdk更改为bar.vmdk
我使用Element树来解析文件,输出显示了每个元素的命名空间
>>> for elem in tree.iter():
.... print elem.tag, elem.attrib, elem.text
{http://schemas.dmtf.org/ovf/envelope/1}File {'{http://schemas.dmtf.org/ovf/envelope/1}href': 'foo.vmdk'}
但是如果我尝试解析标签文件,它就找不到它了:
>>> for elem in tree.iterfind('File'):
... print elem.tag, elem.attrib, elem.text
>>>
我理解“http://schemas.dmtf.org/ovf/envelope/1”是名称空间,但我如何在该名称空间内进行解析?
答案 0 :(得分:0)
以下内容应该有效:
>>> for elem in tree.iterfind('{http://schemas.dmtf.org/ovf/envelope/1}File'):
... print elem.tag, elem.attrib, elem.text
>>>
(无耻的插件:如果您想在Python中使用OVF,请查看COT ...)