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

时间:2019-06-08 00:11:56

标签: rss simplexml

我正在尝试使YouTube RSS feed正常工作,但我正在努力从中获取所需的属性之一。我从未见过以@符号开头的数组的一部分,因此我认为这可能是某种特殊元素,但我不确定。下面的代码以及我已经尝试过的代码。

Feed:

<?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对象”

说对象,然后我尝试使用->箭头和['attribute']表示法。

我尝试使用@来转义\@,但这只是导致了错误。

如何遍历树并获得@attributes->href的值?

1 个答案:

答案 0 :(得分:0)

我一直想记住的方式是可以使用箭头或方括号来访问数组或对象中的数据。

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

在这种情况下,尽管它被称为>"filelist.txt" powershell -NoLogo -NoProfile -Command ^ "(Get-ChildItem -Recurse -Path '..\samplefolder'|" ^ "Where-Object { -not $_.IsContainer}).Name |" ^ "Sort-Object" ,但实际上向我表明它是SimpleXMLObject中的array。所以我不得不像这样使用方括号来访问:

print_r

我无法确定如何访问$xml->entry->link[0]['href'],但是我记得现在您不需要知道访问它的名称,您也可以使用数字格式。

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