RSS含重复itunes:season元素,如何在JavaScript中正确解析?
解决重复itunes:season元素的解析异常问题
你的问题出在jQuery的.text()方法上——当选择器匹配到多个<itunes:season>元素时,它会把所有元素的文本内容拼接在一起返回,所以才会得到"66"这种结果。
要获取单个值,只需要指定取第一个匹配的元素即可,有几种实现方式:
方法一:使用.first()方法
const seasonLS = el.find("itunes\\:season").first().text();
方法二:使用:first选择器
const seasonLS = el.find("itunes\\:season:first").text();
方法三:使用.eq(0)方法
const seasonLS = el.find("itunes\\:season").eq(0).text();
修改后的完整核心代码:
const RSS_URL = `*** URL ***`; $.ajax(RSS_URL, { accepts: { xml: "application/rss+xml" }, dataType: "xml", success: function(data) { console.log(data) $(data) .find("item") .each(function() { const el = $(this); // 只取第一个itunes:season的文本 const seasonLS = el.find("itunes\\:season").first().text(); const episodeLS = el.find("itunes\\:episode").text(); // 后续处理逻辑 }); } });
内容的提问来源于stack exchange,提问作者Mayank
相关产品推荐
相关产品推荐

