YouTube Feed 有一个名为@attributes 的对象,我该如何访问它?

YouTube Feed has an object called @attributes how can I access it?

我正在尝试让 YouTube RSS 提要正常工作,但我很难从中获得我需要的属性之一。我从未见过数组的一部分以 @ 符号开头,所以我认为它可能是某种特殊元素,但我不确定。下面的代码以及我之后已经尝试过的代码。

供稿:

<?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 的值?

我一直试图记住的方法是,您可以使用箭头或括号访问数组或对象中的数据。

数组以A开头,但它选择了不以A开头的那个。对象是剩下的那个。至少我记得是这样的。

在这种情况下,虽然它称它为 SimpleXMLObject,但实际上向我展示了它是 print_r 中的 array。所以我不得不像这样使用括号来访问:

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

我不知道如何访问 @attributes 但我现在记得你不需要知道名字就可以访问它,你也可以使用数字格式来访问它。

老实说,我真的不知道如何使用箭头访问第一部分,因为它似乎也是一个数组。