通过未定义的标记名称获取元素

时间:2016-10-12 15:33:41

标签: python xml-parsing minidom

我使用minidom在Python中解析xml文档。

我有一个元素:

<informationRequirement>
  <requiredDecision href="id"/>
</informationRequirement>

我唯一需要的是子元素中的href值,但它的标记名称可能不同(例如 requiredKnowledge 而不是 requiredDecision ;它始终以需要)。 如果标签始终相同,我会使用类似的东西:

element.getElementsByTagName('requiredDecision')[0].attributes['href'].value

但事实并非如此。知道标签名称的变化可以替代什么呢?

(总会有一个子元素)

1 个答案:

答案 0 :(得分:0)

如果你总是保证有一个子元素,那就抓住那个元素:

element.childNodes[0].attributes['href'].value

然而,这很脆弱。一个(或许)更好的方法可能是:

hrefs = []
for child in element.childNodes:
  if child.tagName.startswith('required'):
    hrefs.append(child.attributes['href'].value)