2010-03-30 18 views
0

如何看待C#中的一種方法,即「purify」嵌入式YouTube視頻標記?在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

那麼你總是可以編寫一個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; 
} 
+0

是的,但問題正是關於您談論的那種方法...... – 2010-07-01 09:01:45

+1

編輯後的版本更易於理解嗎? – Ryk 2010-07-06 03:25:01