0

APIを介して、Pastebinで何かを検索しようとしています。Python用のpastebinライブラリを使用して検索しています。

問題は、繰り返しキーを持つ XML 応答を受け取ることです。

これが応答です

<paste>
<paste_key>fadsda</paste_key>
<paste_date>1409074286</paste_date>
<paste_title>badPaste</paste_title>
<paste_size>2040</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>0</paste_private>
<paste_format_long>Bash</paste_format_long>
<paste_format_short>bash</paste_format_short>
<paste_url>http://pastebin.com/url2</paste_url>
<paste_hits>211</paste_hits>
</paste>
<paste>
<paste_key>fsfgdsgg</paste_key>
<paste_date>1398409838</paste_date>
<paste_title>goodPaste</paste_title>
<paste_size>2407</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>2</paste_private>
<paste_format_long>Bash</paste_format_long>
<paste_format_short>bash</paste_format_short>
<paste_url>http://pastebin.com/otherURL</paste_url>
<paste_hits>54</paste_hits>
</paste>

だから私はいつ返すためにそれを解析しようとしてpaste_keyいますpaste_title == goodPasteが、属性は常に空です

def parseXML(response):
    #I'm adding a root tag
    xml = ElementTree.fromstring('<list>' + response + '</list>')
    for child in root:
            for elem in child:
                print elem.tag, elem.attrib

戻り値

    paste_key {}
    paste_date {}
    paste_title {}
    paste_size {}
    paste_expire_date {}
    paste_private {}
    paste_format_long {}
    paste_format_short {}
    paste_url {}
    paste_hits {}
    paste_key {}
    paste_date {}
    paste_title {}
    paste_size {}
    paste_expire_date {}
    paste_private {}
    paste_format_long {}
    paste_format_short {}
    paste_url {}
    paste_hits {}

編集:だから私はelem.textを使用することになっていたので、今はうまくいっていますが、主な質問はまだ存在します:paste_keyいつどこで要素を返すことができますか?paste_title == goodPaste

EDIT 2 当選チケット:

result = xml.findall(".//paste[paste_title='goodPaste']/paste_key")
print result[0].text
4

1 に答える 1

1

そのためにXPathを使用できます:

result = xml.findall(".//paste[paste_title='goodPaste']/paste_key")
print result.text

fsfgdsggこれはあなたのケースで印刷されるはずです

于 2015-12-12T17:02:44.200 に答える