В канале YouTube есть объект @attributes. Как я могу получить к нему доступ? - PullRequest
0 голосов
/ 08 июня 2019

Я пытаюсь заставить RSS-канал YouTube работать, но я изо всех сил пытаюсь получить один из необходимых мне атрибутов.Я никогда не видел, чтобы часть массива начиналась со знака @, поэтому я думаю, что это может быть какой-то особый элемент, но я не уверен.Код ниже и то, что я уже пробовал после.

Фид:

<?php
$xml->entry =
SimpleXMLElement::__set_state(array(
   'id' => 'yt:video:DjwM9SHJznM',
   'title' => 'JD19AT  - Joomla! in der Uni - Community-Arbeit als Lehrveranstaltung',
   'link' => 
  SimpleXMLElement::__set_state(array(
     '@attributes' => 
    array (
      'rel' => 'alternate',
      'href' => 'https://www.youtube.com/watch?v=DjwM9SHJznM',
    ),
  )),
   'author' => 
  SimpleXMLElement::__set_state(array(
     'name' => 'J and Beyond e.V.',
     'uri' => 'https://www.youtube.com/channel/UCy6ThiEDnalZOd_pgtpBk1Q',
  )),
   'published' => '2019-03-30T16:49:53+00:00',
   'updated' => '2019-05-09T16:56:18+00:00',
));
?>

Код:

$feed = $youtubeChannelFeed;
$xml = simplexml_load_file($feed);
$html = "";

Это работает $xml->entry->title;

, но это не $xml->entry->link, это просто говорит "SimpleXML Object"

Как говорится, объект я затем попытался использовать оба ->стрелка и запись ['attribute'].

Я пытался экранировать @ с \@, но это только вызвало ошибку.

Как я могу пройти по дереву и получить значение для@attributes->href?

1 Ответ

0 голосов
/ 10 июня 2019

Я всегда пытаюсь запомнить это, используя стрелку или скобки для доступа к данным в массиве или объекте.

Массив начинается с A, но он выбирает тот, который не начинается с A. Объект - это оставшийся объект. Вот как я это помню, по крайней мере.

В данном случае, хотя он называл его SimpleXMLObject, он фактически показывал мне, что это array в print_r. Поэтому мне пришлось использовать скобки для доступа, например, так:

$xml->entry->link[0]['href']

Я не мог понять, как получить доступ к @attributes, но теперь я помню, что вам не нужно знать имя, чтобы получить к нему доступ, вы также можете сделать это, используя числовой формат.

Если честно, я не знаю, как мне получить доступ к первой части со стрелками, поскольку это тоже массив.

...