Очистить встраивание видео YouTube метод в C # - PullRequest
0 голосов
/ 30 марта 2010

Как бы выглядел метод в C #, который " очищает " встроенную разметку видео 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 Ответ

1 голос
/ 01 июля 2010

Ну, вы всегда можете написать метод 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...