2012-04-08 19 views
1

我经历Asheesh Laroia的使用的getElementsByTagName“刮网站”从2010年PYCON介绍和我有一个关于一个特定的代码行的问题是这一行:从xml.dom.minidom

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'是否将输入解析到列表中?

回答

4

parse()不返回一个列表; getElementsByTagName()呢。您要求标记为<title>的所有元素。大多数标签可以在文档中出现多次,所以当你要求这些元素时,你会得到不止一个。返回它们的明显方式是列表或元组。

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

2

这种方法的(getElementsByTagName)的文件说:

搜索所有后代(直接孩子,孩子的孩子, 等)与特定元素类型名称。

既然提到了“所有子孙”,那么,在所有相似它返回一个列表,这个代码只是索引来看到的第一个元素。

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

相关问题