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

Rails中Feedjira v2.0无法解析含xml-stylesheet的RSS Feed

解决Feedjira v2.0解析特定RSS源返回空对象的问题

问题根源

目标RSS源中的<xml-stylesheet>标签存在语法错误:href属性末尾使用了?>而非正确的"/>闭合,导致XML格式不合法,Feedjira依赖的XML解析器无法正常解析整个文档,最终返回空的Feedjira::Parser::ITunesRSS对象。

解决方案

在将响应内容传给Feedjira解析前,预处理修复或移除有问题的标签:

方法1:移除错误标签

直接删除有问题的xml-stylesheet行,代码示例:

# 获取RSS源内容(可替换为项目中实际使用的HTTP请求方式)
response = HTTParty.get("https://www.deutschlandfunknova.de/podcast/update")
# 清理响应内容,移除错误的xml-stylesheet标签
cleaned_body = response.body.gsub(/<xml-stylesheet type="text\/xsl" media="screen" href="https:\/\/www.deutschlandfunknova.de\/podcast.xsl\?>/, '')
# 解析清理后的内容
feed = Feedjira::Feed.parse(cleaned_body)

方法2:修复标签语法

将错误的闭合符号修正为合法的XML格式,代码示例:

response = HTTParty.get("https://www.deutschlandfunknova.de/podcast/update")
# 修正xml-stylesheet标签的闭合错误
cleaned_body = response.body.gsub(/<xml-stylesheet type="text\/xsl" media="screen" href="https:\/\/www.deutschlandfunknova.de\/podcast.xsl\?>/, '<xml-stylesheet type="text/xsl" media="screen" href="https://www.deutschlandfunknova.de/podcast.xsl"/>')
feed = Feedjira::Feed.parse(cleaned_body)

验证

执行上述代码后,feed对象将包含解析后的RSS内容,而非空的ITunesRSS实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:15:47