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

RSS Feed显示有内容但XmlReader读取到0条数据问题排查

问题排查与解决思路

针对你用SyndicationFeed读取新WordPress Feed返回0条数据的问题,可从以下几个方向排查:

1. 调整XmlReader的DTD处理配置

部分WordPress新Feed可能包含DTD声明,而默认的XmlReaderSettings会禁止解析DTD,导致SyndicationFeed无法正确加载条目。修改代码配置允许解析DTD:

var settings = new XmlReaderSettings
{
    DtdProcessing = DtdProcessing.Parse,
    XmlResolver = null // 规避外部实体注入风险
};
using var reader = XmlReader.Create(blogSettings.RssFeedUrl, settings);
var feed = SyndicationFeed.Load(reader);

2. 处理Feed的重定向问题

新Feed可能存在301/302重定向,XmlReader.Create(string url)默认不会自动跟随重定向,而浏览器会自动处理。改用HttpClient获取Feed内容后再解析:

using var httpClient = new HttpClient();
var response = await httpClient.GetAsync(blogSettings.RssFeedUrl);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();
using var reader = XmlReader.Create(stream);
var feed = SyndicationFeed.Load(reader);

3. 对比新旧Feed的XML结构差异

直接查看新Feed的XML源码,确认:

  • 条目是否在<item>(RSS)或<entry>(Atom)节点下,SyndicationFeed对两种格式都支持,但需确保结构符合标准
  • 检查根节点的命名空间是否正确,排除WordPress配置或插件导致的结构变更

4. 验证Feed内容一致性

在代码中添加日志,打印读取到的Feed原始XML内容,对比浏览器访问的内容是否一致,排查缓存、动态输出差异等问题。

内容的提问来源于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 04:10:12