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 Yankees: 6 Essential Pieces of Postseason Memorabilia”保存到变量“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

请改用 XML 解析器,例如 ElementTree:

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 回答