如何在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无效。
答案 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;
}