0

別の文字列の後に発生した後に文字列を返そうとする長い文字列があります。たとえば、最初に文字列で「zombiesattack」という文字列を探し、次に「title」という名前の文字列が出現する最初の場所を探し、「title」と「/title」の間のテキストを保存して印刷したいとします。 「titleOfVideo」という名前の別の変数。私はこれを行うのに苦労しています。何かアドバイス?

data という名前の変数に格納された文字列

data= <updated>2012-10-10T19:20:55.000Z</updated>
<abc>zombiesattack</abc>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video" />
<category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Sports" label="Sports" />
<title>NY Yankees: 6 Essential Pieces of Postseason Memorabilia</title>

「NY ヤンキース: ポストシーズン記念品の 6 つの重要な部分」を変数「titleOfVideo」に保存したいと思います。

starting_point = data.find('zombiesattack')
new_string = data[starting_point:]
title_point = new_string.find('<title>')
print new_string[:title_point]

titleOfVideo = new_string[title_point:20]

これを試して titleOfVideo を印刷すると、たくさんの戻り行が表示されます。

4

2 に答える 2

0

この特定の例の場合:

starting_point = data.find('zombiesattack')
new_string = data[starting_point:]
title_start = new_string.find('<title>')
title_end = new_string.find('</title>')
titleOfVideo = new_string[title_start + len('<title>'):title_end]
于 2012-10-12T02:32:38.277 に答える
0

代わりに、ElementTreeなどのXMLパーサーを使用してください。

from xml.etree import ElementTree
# you need a valid xml string
data = '<root>' + data + '</root>'
etree = ElementTree.fromstring(data)
if etree.findtext('abd') == 'zombiesattack':
    titleOfVideo = etree.findtext('title')
于 2012-10-12T02:35:38.400 に答える