我从这个 URL 中提取 RSS 数据,这就是它们的数据结构。
<item>
<itunes:episodeType>full</itunes:episodeType>
<itunes:season>6</itunes:season>
<itunes:episode>49</itunes:episode>
<itunes:season>6</itunes:season>
</item>
它有重复的子元素 itunes:season。如何在 JavaSCript 中正确解析它?任何帮助将不胜感激! :)
这是我的代码的要点:
success: function(data) {
.find("item")
.each(function() {
const el = $(this);
const seasonLS = el.find("itunes\\:season").text();
const episodeLS = el.find("itunes\\:episode").text();
};
我尝试通过子名获取它,但重复的子名将其丢弃。
编辑:
抱歉问题不清楚。这里有更多信息。
itunes:season 的预期输出是 6。这个输出是 66。
.find 链接在下面:
常量 RSS_URL =
*** URL ***
;
$.ajax(RSS_URL, {
accepts: {
xml: "application/rss+xml"
},
dataType: "xml",
success: function(data) {
console.log(data)
$(数据) .find("项目")...
如果你的目标是只获取这两个元素,无论有多少个..为什么不直接创建一个 DOM 对象,并按标签搜索..然后找到每个元素的第一个索引:
const htmlString = `<item>
<itunes:episodeType>full</itunes:episodeType>
<itunes:season>6</itunes:season>
<itunes:episode>49</itunes:episode>
<itunes:season>6</itunes:season>
</item>
<item>
<itunes:episodeType>full</itunes:episodeType>
<itunes:season>7</itunes:season>
<itunes:episode>55</itunes:episode>
<itunes:season>5</itunes:season>
</item>`;
const domParser = new DOMParser();
const docElement = domParser.parseFromString(htmlString, "text/html").documentElement;
var emCollection = docElement.getElementsByTagName("item");
for (var i = 0; i < emCollection.length; i++) {
const seasonLS = emCollection[i].getElementsByTagName('itunes:season')[0].innerHTML;
const episodeLS = emCollection[i].getElementsByTagName('itunes:episode')[0].innerHTML;
console.log("Episode: " + episodeLS + "\n Season: " + seasonLS)
}