在HTML文档中使用XML文件中的数据



正如标题所示,我希望能够在HTML页面中使用XML文件中的数据。让我解释一下页面试图做什么,以帮助解释我需要帮助的内容。。

HTML页面完成后将带着搜索查询进入YouTube服务器,并检索从搜索中生成的带有最新信息的XML文件。然后,页面将查看给定的XML文件,找到<yt:videoid>节点,并将字符串传输到HTML文件。然后,HTML文件可以使用字符串(可能是javascript)来制作嵌入视频代码。

因此,由于搜索查询,结果页面将始终具有最新的视频。

到目前为止,我已经找到了获取XML文件的链接(如下),并查看了XML(链接:https://gdata.youtube.com/feeds/api/videos?author=inthegamesroom&orderby=已发布&prettyprint=true&起始索引=1&最大结果=1&v=2)

我发现我想要的信息在一个名为<yt:videoid>的节点中,该节点位于<media:group>之下,该节点处于<feed> 之下

在网上做了一些研究后(因为我不是javascript程序员,我只有基本知识,我发现你可以使用XML DOM从HTML页面中读取和调整XML文件。但XML DOM代码的问题是,它需要XML文件托管在实际的服务器上,而这显然不是-因为它在youtube上。

有人知道我可以读取数据并将其放入javascript变量的方法吗?我不一定希望你花很长时间写一些代码,但至少希望你能引导我朝着正确的方向前进?

非常感谢高级,

蚂蚁。

附言,请记住,我不是JS或HTML程序员。。我只知道基础知识,如果我在这篇文章中做错了什么,请告诉我,因为这是我在stackoverflow上的第一次。

无需在浏览器端执行任何操作即可获取或解析XML。

Youtube的API是公共的,允许任何人(?)查询它,这意味着您只需要一个简单的ajax调用就可以获得xml文件。通过一些额外的jQuery(或任何其他库),您可以提取视频的id:

jQuery(document).ready(function() {
    // request xml data
    jQuery.ajax('https://gdata.youtube.com/feeds/api/videos?author=inthegamesroom&orderby=published&prettyprint=true&start-index=1&max-results=1&v=2',{
        dataType:'xml',
        success: function(data,status, xhr ) {
           // process response
           var $_d =$(data);
           var videoTag = $_d.find('yt\:videoid'); // doesn't seem to work
           var videoTag = $_d.find('videoid'); // works
           var videoId = videoTag.text();
           // do the embedding
           embedYT(videoId);
        }
    });
   // a simple way to embed a youtube player in a page
   function embedYT(id) {
        jQuery(document.body).append("<iframe class='youtube-player' type='text/html' width='640' height='385' src='http://www.youtube.com/embed/"+id+" frameborder='0'></iframe>")
   }
});

jsFiddle

示例php代码:

// content of example.php
<?php
$xml = simplexml_load_file('https://gdata.youtube.com/feeds/api/videos?author=inthegamesroom&orderby=published&prettyprint=true&start-index=1&max-results=1&v=2');
foreach( $xml->children() as $child) {
    if($child->getName() == 'yt:videoid'){
        echo $child->asXML();
    }
}
?>

示例jQuery代码:

var ytUrlThing;
$.post('example.php', function(data) { ytUrlThing = data; });

相关内容

  • 没有找到相关文章

最新更新