0
我已經解析了一些youtube API返回的XML。我試圖解析的XML可以在這樣的URL上找到http://gdata.youtube.com/feeds/api/videos?v=2&q=stackoverflow從C#中的youtube API解析XML
我試圖得到的節點是yt:accessControl,我不知道如何做到這一點。我用SelectNodes嘗試過,但得到了一個空的結果。
我已經解析了一些youtube API返回的XML。我試圖解析的XML可以在這樣的URL上找到http://gdata.youtube.com/feeds/api/videos?v=2&q=stackoverflow從C#中的youtube API解析XML
我試圖得到的節點是yt:accessControl,我不知道如何做到這一點。我用SelectNodes嘗試過,但得到了一個空的結果。
對於YouTube,我覺得你不需要是 - 谷歌已經API封裝專爲.NET:https://developers.google.com/youtube/2.0/developers_guide_dotnet
但是,如果您仍然希望做手工,LINQ到XML的方法,如後裔和Element採取XName作爲參數。從字符串到XName的轉換會自動爲您執行。您可以通過在Descendants和Element調用中的字符串之前添加XNamespace來解決此問題。小心,因爲你有兩個不同的命名空間在工作。
XNamespace ns = "http://gdata.youtube.com/schemas/2007";
var xElements = XElement.Parse(File.ReadAllText(@"c:\test\youtube.xml"))
.Descendants(ns + "accessControl");
沒有LINQ的會是這個樣子:
var xdoc = new XmlDocument();
xdoc.Load(@"c:\test\youtube.xml");
var namespaceManager = new XmlNamespaceManager(xdoc.NameTable);
namespaceManager.AddNamespace("yt", "http://gdata.youtube.com/schemas/2007");
var xmlNodeList = xdoc.SelectNodes("//yt:accessControl", namespaceManager);
感謝您的答覆!你能告訴我如何在沒有LINQ的情況下執行它,因爲我的整個代碼已經在使用System.Xml的函數了。 – armin
我已經更新了我的答案,但是我真的鼓勵你使用google的包裝器。 – Giedrius
謝謝!需要做更多的編碼,直到我得到一個解析xml的竅門:) – armin