【问题标题】:Parse for attribute in xml namespace with element tree使用元素树解析 xml 命名空间中的属性
【发布时间】:2017-03-23 12:41:30
【问题描述】:

使用以下 XML 文件,它是一个 vmware OVF:

<File ovf:href="foo.vmdk"/>

我需要将 foo.vmdk 更改为 bar.vmdk

我使用元素树来解析文件,他的输出显示了每个元素的命名空间

>>> 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”是名称空间,但如何在该名称空间内进行解析?

【问题讨论】:

    标签: xml namespaces elementtree ovf


    【解决方案1】:

    以下应该有效:

    >>> for elem in tree.iterfind('{http://schemas.dmtf.org/ovf/envelope/1}File'):
    ...   print elem.tag, elem.attrib, elem.text
    >>> 
    

    (无耻插件:如果您想在 Python 中使用 OVF,请查看 COT...)

    【讨论】:

      猜你喜欢
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2021-02-12
      • 2021-05-03
      相关资源
      最近更新 更多