Mikhail_RU
@Mikhail_RU
учусь

Как вытащить значения из XML?

Всем привет!

Есть вот такая повторяющаяся XML структура:

<entry>
<author>
      <name>Dunnock_D</name>
      <uri>http://www.flickr.com/people/dunnock_d/</uri>
 </author>
    <link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc/2.0/deed.en" />
    <link rel="enclosure" type="image/jpeg" href="http://farm8.staticflickr.com/7548/26820724620_1d221c3187_b.jpg" />
</entry>


Мне нужно взять занчение href только там, где rel="enclosure" (получить ссылку на картинку).

Делаю это в цикле:

$xml = simplexml_load_string($result);

    foreach ($xml->entry as $pixinfo) {
       
       echo $pixinfo->link[1]['href'];
       
    }


Но в этой структуре то два, то одно значение link. И когда беру через индекс массива, иногда попадается не то что нужно.
То есть мне нужно точно выбрать только link rel="enclosure"

Есть ли лаконичное решение или нужно запускать дополнительные проверки для этого в цикле?
Документацию читал, не помогло.

Заранее спасибо за помощь!
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Я в php не особо, но думаю - как-то так:
$xml->xpath("//link[@rel='enclosure']");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ya_yshel_rabotati_v_teleg
на крайняк можно использовать preg_match_all
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы