Взять из xml - картинки наиболее лучшего качества

seodamage

Client
Регистрация
08.09.2014
Сообщения
227
Благодарностей
69
Баллы
28
Привет, есть такой xml(vk api)
В нем подряд идут блоки такого вида:

Код:
<attachment>
     <type>photo</type>
     <photo>
      <pid>322086427</pid>
      <aid>-7</aid>
      <owner_id>-1111</owner_id>
      <user_id>100</user_id>
      <src>http://cs616021.vk.me/v616021855/6170/0XaVoDCSCNg.jpg</src>
      <src_big>http://cs616021.vk.me/v616021855/6171/MVG9GBgbs58.jpg</src_big>
      <src_small>http://cs616021.vk.me/v616021855/616f/1338zHzU5ZQ.jpg</src_small>
      <width>604</width>
      <height>401</height>
      <text></text>
      <created>1394904950</created>
      <access_key>1c8100a10aa4ea1caa</access_key>
     </photo>
    </attachment>
Всего за раз может быть до 9 таких блоков. Как взять из этих блоков картинки наиболее хорошего качества, при условии что картинки находятся в теге <src* и он бывает нескольких видов:

<src_xxbig>...</src_xxbig> Самое лучшее качество
<src_xbig>...</src_xbig> Качество похуже
<src_big>...</src_big> Хуже
<src>...</src> :(
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
792
Баллы
113
(?<=<src_xxbig>).*?(?=</src_xxbig>)
 

seodamage

Client
Регистрация
08.09.2014
Сообщения
227
Благодарностей
69
Баллы
28
Очевидно, что не будет работать так. Нужно чтобы бралось максимально возможное лучшее качество картинки, но может быть такое, что картинка залита в меньшем разрешении и <src_xxbig> просто нет, тогда нужен будет <src_xbig>, а если его нет то <src_big> и т.д. При этом может быть за раз несколько блоков в которых есть например <src_xxbig>

все это в коде вот так:

Код:
<attachment>
xxx
<src_xxbig>...</src_xxbig>
<src_xbig>...</src_xbig>
<src_big>...</src_big>
xxx
</attachment>
...
<attachment>
zzz
<src_xxbig>...</src_xxbig>
<src_xbig>...</src_xbig>
<src_big>...</src_big>
zzz
</attachment>
...


То есть нужно между аттачментс посмотреть существует ли <src_xxbig> и чтобы оно было не пустым, если нету или пустое тогда тоже самое но уже с <src_xxbig> и так пока не найдется картинка. Но затрудняет все то, что может быть за 1 раз до 9 блоков с аттачментс. Соответственно, надо как то делить большой блок на маленькие.
 

Вложения

  • 17,5 КБ Просмотры: 16
Последнее редактирование:

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Парсите регуляркой от <photo> до </photo> и кладете каждый блок в список
Потом берете из списка каждую строчку и делаете с ней что хотите)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)