You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#读取WordPress RSS Feed时,如何提取content:encoded内容?

解决WordPress RSS Feed中content:encoded内容提取问题

你当前用ReadElementExtensions<string>获取不到content:encoded内容,是因为SyndicationFeed对自定义命名空间元素的处理存在局限。可以通过直接将SyndicationItem转换为XElement的方式,精准定位到目标元素:

修改后的代码示例:

var reader = XmlReader.Create(blogSettings.RssFeedUrl);
var feed = SyndicationFeed.Load(reader);
var contentNs = XNamespace.Get("http://purl.org/rss/1.0/modules/content/");

var items = feed.Items.Select(i =>
{
    // 将SyndicationItem的扩展元素加载为XElement
    var itemXElement = XElement.Load(i.GetReaderAtElementExtensions());
    // 获取content:encoded元素的内容
    var contentEncoded = itemXElement.Element(contentNs + "encoded")?.Value;

    return new BlogPost
    {
        // 赋值到对应的属性,比如:
        // FullContent = contentEncoded
    };
});
return items;

关键说明

  • 先通过XNamespace指定content模块的命名空间,确保能准确匹配content:encoded元素
  • 使用i.GetReaderAtElementExtensions()获取扩展元素的阅读器,再加载为XElement,完整保留元素原始结构
  • 用?.Value处理元素不存在的情况,避免空引用异常

内容的提问来源于stack exchange,提问作者muttley91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 03:43:15