2

コードのこの部分は、Webページの画面に出力するためにXMLを解析します。

for counter in range(100):
    try:
        for item in BlekkoSearchResultsXML.getElementsByTagName('item'):
            Blekko_PageTitle = item.getElementsByTagName('title')[counter].firstChild.toxml(encoding="utf-8")
            Blekko_PageDesc = item.getElementsByTagName('description')[counter].firstChild.toxml(encoding="utf-8")
            Blekko_DisplayURL = item.getElementsByTagName('guid')[counter].firstChild.toxml(encoding="utf-8")
            Blekko_URL = item.getElementsByTagName('link')[counter].firstChild.toxml(encoding="utf-8")
            print "<h2>" + Blekko_PageTitle + "</h2>"
            print Blekko_PageDesc + "<br />"
            print Blekko_DisplayURL + "<br />"
            print Blekko_URL + "<br />"
    except IndexError:
        break

ただし、null XMLタグのセットが検出された場合、つまりページにページタイトルまたは説明がない場合、スクリプトは失敗し、エラーメッセージが表示されます。

AttributeError: 'NoneType' object has no attribute 'toxml' 
      args = ("'NoneType' object has no attribute 'toxml'",)

解析されるXMLのスニペット:

<item>
        <title>SUSHI FANLISTING</title>
        <link>http://sushi.perfectdrug.net/</link>
        <guid>http://sushi.perfectdrug.net/</guid>
        <description>This is the official...</description>
        </item>

次のようなtry/exceptステートメントの使用に失敗しました。

try:
    Blekko_PageTitle = item.getElementsByTagName('title')[counter].firstChild.toxml(encoding="utf-8")
except Blekko_PageTitle = None:
    Blekko_PageTitle = "No page title provided..."

任意の提案をいただければ幸いです。

4

1 に答える 1

0

あなたはexcept間違っています:それは発生する例外オブジェクトをキャッチします。あなたが欲しい

except AttributeError:

または、条件付きを使用します。

if Blekko_PageTitle = None:
    ...
else:
    ...
于 2011-07-14T10:36:25.587 に答える