使用xml.dom.minidom中的getElementsByTagName

时间:2012-04-08 00:15:58

标签: python xml

我正在通过PyCon 2010中的Asheesh Laroia的“Scrape the Web”演示文稿,我对这一行的特定代码行有疑问:

title_element = parsed.getElementsByTagName('title')[0]

来自函数:

def main(filename):
    #Parse the file
    parsed = xml.dom.minidom.parse(open(filename))
    # Get title element
    title_element = parsed.getElementsByTagName('title')[0]
    # Print just the text underneath it
    print title_element.firstChild.wholeText

我不知道'[0]'在该行末尾的作用是什么。 'xml.dom.minidom.parse'是否将输入解析为列表?

2 个答案:

答案 0 :(得分:4)

parse()不会返回列表; getElementsByTagName()。您要求所有标记为<title>的元素。大多数标签可以在文档中多次出现,因此当您要求这些元素时,您将获得多个标签。返回它们的显而易见的方法是列表或元组。

在这种情况下,您希望文档中只有一个<title>标记,因此您只需获取列表中的第一个元素。

答案 1 :(得分:2)

此方法的(getElementsByTagName)文档说:

  

搜索所有后代(直接儿童,儿童,   等)具有特定的元素类型名称。

因为它提到“所有后代”,然后是,所有相似它返回一个列表,该代码只是索引以查看第一个元素。

查看此方法的代码(在Lib/xml/dom/minidom.py中) - 它确实返回一个列表。