2012-04-08 57 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) - 它確實返回一個列表。

相關問題