Php 无法分析atom源
我正在实现Youtube推送通知并实现webhook。Youtube以atom提要的形式提供更新。我的问题是我无法解析那个提要 这是XML:Php 无法分析atom源,php,parsing,xml-parsing,atom-feed,Php,Parsing,Xml Parsing,Atom Feed,我正在实现Youtube推送通知并实现webhook。Youtube以atom提要的形式提供更新。我的问题是我无法解析那个提要 这是XML: <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:yt="http://www.youtube.com/xml/schemas/2015"> <link rel="hub" href="https://p
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:yt="http://www.youtube.com/xml/schemas/2015">
<link rel="hub" href="https://pubsubhubbub.appspot.com" />
<link rel="self" href="https://www.youtube.com/xml/feeds/videos.xml?channel_id=UCaNoTnXcQQt3ody_cLZSihw" />
<title>YouTube video feed</title>
<updated>2018-03-01T07:21:59.144766801+00:00</updated>
<entry>
<id>yt:video:vNQyYJqFopE</id>
<yt:videoId>vNQyYJqFopE</yt:videoId>
<yt:channelId>UCaNoTnXcQQt3ody_cLZSihw</yt:channelId>
<title>Test Video 4</title>
<link rel="alternate" href="https://www.youtube.com/watch?v=vNQyYJqFopE" />
<author>
<name>Testing</name>
<uri>https://www.youtube.com/channel/UCaNoTnXcQQt3ody_cLZSihw</uri>
</author>
<published>2018-03-01T07:21:48+00:00</published>
<updated>2018-03-01T07:21:59.144766801+00:00</updated>
</entry>
YouTube视频源
2018-03-01T07:21:59.144766801+00:00
yt:视频:vNQyYJqFopE
vNQyYJqFopE
UCaNoTnXcQQt3ody_cLZSihw
测试视频4
如何获取yt:videoId元素的值。我是PHP新手,如果我做错了什么,请纠正我。试试这个(更新)
接通频道
echo $obj->xpath('//yt:videoId')[0];
// output: vNQyYJqFopE
似乎包含yt名称空间的XML元素(例如,
)没有被simplexml\u load\u string
解析。我不知道为什么,但在您的例子中,视频id也存在于
元素中,您只需要提取最后一个值,或者简单地剪切它前面的yt:video:
。这至少是一个简单的解决办法
如果使用直接指向
元素的命令,它也可以工作,如下所示:
XPath总是返回一个数组,因此您需要使用[0]
获取第一个元素。请添加您尝试的“如何获取yt:videoId元素的值”的代码。我在输出中看不到该属性。该元素包含:
。是否尝试了$obj->entry->id
?不,让我试试。是的,我正在获取。但是我需要yt:videoId的值yt:videoId的值
$str = $obj->entry->id;
echo substr($str, strpos($str, "video:")+ 6);
$chan = $obj->entry->author->uri;
echo substr($chan , strpos($chan , "channel/")+ 8);
echo $obj->xpath('//yt:videoId')[0];
// output: vNQyYJqFopE