在C#中纯化嵌入YouTube视频方法

时间:2010-03-30 17:04:36

标签: c# youtube

如何在C#中查看“purify”嵌入式YouTube视频标记的方法?

所以方法输入是:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>

输出:

<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/gtNlQodFMi8">
<param name="movie" value="http://www.youtube.com/v/gtNlQodFMi8" />

YouTube嵌入式视频标记存在问题,因为内联样式(宽度,高度)并且XHTML无效。

1 个答案:

答案 0 :(得分:1)

你总是可以编写一个C#方法,在给定一个输入的情况下输出你想要的代码,在这种情况下是对象的XML,然后解析它并提取你想要的位并构造代码并输出它,然后从aspx页面,你只需用服务器代码调用它,就像这个

<% MyYoutubeUtils.ShowEmebddedVideo("<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>") %>

或类似的东西。

好的我不是100%确定语法,但这应该给你一个开始。

public static string ShowEmbeddedVideo(string youtubeObject)
{
    var xdoc = XDocument.Parse(youtubeObject);
    var returnObject = string.Format("<object type=\"{0}\" data=\{1}\"><param name=\"movie\" value=\"{1}\" />",
        xdoc.Root.Element("embed").Attribute("type").Value,
        xdoc.Root.Element("embed").Attribute("src").Value);
    return returnObject;
}