gpt4 book ai didi

c# - 使用 linq 解析 youtube 提要

转载 作者:数据小太阳 更新时间:2023-10-29 02:06:47 26 4
gpt4 key购买 nike

我想解析 youtube channel 的原子提要。这是该 rss 原子提要的链接。

http://gdata.youtube.com/feeds/api/users/cokestudio/uploads?orderby=updated

 List<YTFeeds> lstYT = new List<YTFeeds>();
XDocument xDocumentYT = XDocument.Load(Server.MapPath("XMLFile.xml"));
XNamespace xmlns = "http://www.w3.org/2005/Atom";
lstYT.AddRange((from entry in xDocumentYT.Descendants(xmlns + "entry").Elements(xmlns + "media:group")
select new YTFeeds
{
Title = entry.Element(xmlns + "media:title").Value,
Description = entry.Element(xmlns + "media:description").Value,
Video = entry.Elements(xmlns + "media:player").ElementAt(1).Attribute("url").Value,
Image = entry.Elements(xmlns + "media:thumbnail").ElementAt(1).Attribute("url").Value

}).ToList());

我收到一条错误消息 invalid character or hexcode ":" .我想从标签中获取元素:<media:group>请提出建议。

最佳答案

当使用命名空间写出元素的名称时,您必须省略前缀,它将为您处理。在这种情况下,您需要一个单独的命名空间实例才能获取 media 元素。所以访问标题、描述等应该是这样的:

var doc = XDocument.Load(Server.MapPath(@"XMLFile.xml"));
XNamespace xmlns = "http://www.w3.org/2005/Atom";
XNamespace media = "http://search.yahoo.com/mrss/";
var query =
from entry in doc.Root.Elements(xmlns + "entry")
let grp = entry.Element(media + "group")
select new YTFeeds
{
Title = (string)grp.Element(media + "title"),
Description = (string)grp.Element(media + "description"),
Video = (string)grp.Element(media + "player").Attribute("url"),
Image = grp.Elements(media + "thumbnail")
.Select(e => (string)e.Attribute("url"))
.First(),
};
var lstYT = query.ToList();

关于c# - 使用 linq 解析 youtube 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com