>>> import xml.etree.ElementTree
>>>
>>> s = """<?xml version="1.0" encoding="utf-8"?>
... <response>
... <count>1259</count>
... <items list="true">
... <post>
... <id>1597</id>
... <from_id>-433987</from_id>
... <to_id>-433987</to_id>
... <date>1397446</date>
... <post_type>post</post_type>
... <text>ыаыавваыв</text>
... <attachments list="true">
... <attachment>
... <type>photo</type>
... <photo>
... <id>3264617</id>
... <album_id>-7</album_id>
... <owner_id>-433987</owner_id>
... <user_id>10</user_id>
... <photo_75>http://cs618927.vk.me/tq2VC_yp_xU.jpg</photo_75>
... <photo_130>http://cs618927.vk.me/pZULrBTO-nQ.jpg</photo_130>
... <photo_604>http://cs618927.vk.me/ZGcM1zyYIGY.jpg</photo_604>
... <width>500</width>
... <height>500</height>
... <text/>
... <date>13744348</date>
... <post_id>15197</post_id>
... <access_key>70699cee</access_key>
... </photo>
... </attachment>
... <attachment>
... <type>audio</type>
... <audio>
... <id>2758651</id>
... <owner_id>200104</owner_id>
... <artist>M</artist>
... <title>Tor</title>
... <duration>31</duration>
... <url>http://cs3-1v4.vk.me/p4/de3882e014c8.mp3</url>
... </audio>
... </attachment>
... </attachments>
... <comments>
... <count>11</count>
... </comments>
... <likes>
... <count>36</count>
... </likes>
... <reposts>
... <count>6</count>
... </reposts>
... </post>
... </items>
... </response>
... """
>>>
>>> root = xml.etree.ElementTree.fromstring(s)
>>> types = [i.text for i in root.findall('.//attachment/type')]
>>> types
['photo', 'audio']
>>>
поправил твой xml (добавил закрывающий тег)
ещё вариант через lxml
>>> import lxml.etree
>>>
>>> s = """<?xml version="1.0"?>
... <response>
... <count>1259</count>
... <items list="true">
... <post>
... <id>1597</id>
... <from_id>-433987</from_id>
... <to_id>-433987</to_id>
... <date>1397446</date>
... <post_type>post</post_type>
... <text>ыаыавваыв</text>
... <attachments list="true">
... <attachment>
... <type>photo</type>
... <photo>
... <id>3264617</id>
... <album_id>-7</album_id>
... <owner_id>-433987</owner_id>
... <user_id>10</user_id>
... <photo_75>http://cs618927.vk.me/tq2VC_yp_xU.jpg</photo_75>
... <photo_130>http://cs618927.vk.me/pZULrBTO-nQ.jpg</photo_130>
... <photo_604>http://cs618927.vk.me/ZGcM1zyYIGY.jpg</photo_604>
... <width>500</width>
... <height>500</height>
... <text/>
... <date>13744348</date>
... <post_id>15197</post_id>
... <access_key>70699cee</access_key>
... </photo>
... </attachment>
... <attachment>
... <type>audio</type>
... <audio>
... <id>2758651</id>
... <owner_id>200104</owner_id>
... <artist>M</artist>
... <title>Tor</title>
... <duration>31</duration>
... <url>http://cs3-1v4.vk.me/p4/de3882e014c8.mp3</url>
... </audio>
... </attachment>
... </attachments>
... <comments>
... <count>11</count>
... </comments>
... <likes>
... <count>36</count>
... </likes>
... <reposts>
... <count>6</count>
... </reposts>
... </post>
... </items>
... </response>
... """
>>>
>>> root = lxml.etree.fromstring(s)
>>> types = root.xpath('.//attachment/type/text()')
>>> types
['photo', 'audio']
>>>
убрал кодировку, так как она не допускается в юникодовых строках
ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.
модуль хоть и не стандартный (проблемы с установкой на винде), зато поудобнее, чем xml, и возможностей больше в плане xpath
doza_and
Чем больше работаю с xml тем больше его игнорирую.
>>> re.findall("<type>(.+)<",data)
['photo', 'audio']
во, а теперь добавляем условие: тег <type> появляется где-нибудь в другом месте
был тип атачмента, а добавили, к примеру, тип поста
и что ? правильно, код надо переписывать, а таких кодов сколько ? правильно, два миллиона