1

PyCon2010からのAsheeshLaroiaの「ScrapetheWeb」プレゼンテーションを行っていますが、この行である特定のコード行について質問があります。

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

2 に答える 2

4

parse()リストを返しません。getElementsByTagName()します。タグが。のすべての要素を要求しています<title>。ほとんどのタグはドキュメントに複数回表示される可能性があるため、これらの要素を要求すると、複数のタグが表示されます。それらを返す明白な方法は、リストまたはタプルとしてです。

この場合<title>、ドキュメントにはタグが1つしかないため、リストの最初の要素を取得するだけです。

于 2012-04-08T00:22:50.193 に答える
2

このメソッドの(getElementsByTagName)ドキュメントには次のように書かれています。

特定の要素タイプ名を持つすべての子孫(直接の子、子の子など)を検索します。

「すべての子孫」について言及しているので、そうです。すべての類似点で、このコードが最初の要素を表示するためにインデックスを作成するだけのリストを返します。

このメソッドのコード(内Lib/xml/dom/minidom.py)を見ると、実際にリストが返されます。

于 2012-04-08T00:20:07.520 に答える