我已经尝试这样做好几天了,但我没有运气试图弄清楚如何做到这一点。
这是我正在尝试读取的 Atom 提要条目的示例。
<entry>
<title>Is Traffic Draining Employee Productivity at Your Workplace?</title>
<author><name>Seth Stuck</name></author>
<source>
<title>Team Georgia</title>
<id>http://team.georgia.gov/feed/</id>
<updated>2015-03-03T19:19:13.763475Z</updated>
</source>
<link rel="alternate" href="http://trap.it/pxgvM" />
<id>http://trap.it/pxgvM</id>
<updated>2015-03-03T19:19:13.763475Z</updated>
<published>2015-03-03T19:19:13.763475Z</published>
<summary>Is Traffic Draining Employee Productivity at Your Workplace?</summary>
<media:thumbnail
xmlns:media="http://search.yahoo.com/mrss/"
url="http://images.higgs.trap.it/sizes/orig/9fb99a95f2f04977a0994c1a9f1d32cd.png" />
</entry>
我想要捕获的唯一真正重要的元素是
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://images.higgs.trap.it/sizes/orig/9fb99a95f2f04977a0994c1a9f1d32cd.png" />
我找不到有帮助的插件或文章。我从我读过的所有内容中得到的最接近的是:
$(document).ready(function() {
var getXML = function() {
var output = $('#output');
var html = '';
output.empty();
$.ajax({
type: 'GET',
dataType: 'xml',
data: null,
url: 'file.xml',
success: function(xml) {
var $entries = $(xml).find('entry');
$entries.each(function() {
var $entry = $(this);
var entry = $entry[0]; // DOM element
var content = $entry.find('content').text();
var thumbnail = entry.getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'thumbnail')[0].getAttribute('url');
html += '<img src="' + thumbnail + '" />';
html += content;
});
output.html(html);
},
error: function(xhr, status, text) {
console.log(status + ': ' + text);
}
});
};
$('#action').on('click', getXML);
});
来自这里 http://gabrieleromanato.name/jquery-parsing-XML-with-namespaces-the-definitive-solution/
在我的情况下我无法上类。大家还有什么建议吗?
谢谢
最佳答案
目前Team Georgia feed没有任何 media:thumbnail
条目,因此无法用于测试,但以下是另一个 Feed 的示例:
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed('http://channel9.msdn.com/Feeds/RSS'); // change the feed url
feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
feed.setNumEntries(25);
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("feed");
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var mediaEntries = entry.xmlNode.getElementsByTagNameNS('*','thumbnail');
for (var j = 0; j < mediaEntries.length; j++) {
var mediaEntry = mediaEntries[j]; // This is the media:thumbnail item
var mediaThumbnailUrl = mediaEntry.attributes.getNamedItem('url').value // Just the url
var imageElement = document.createElement("img");
imageElement.setAttribute('src', mediaThumbnailUrl);
imageElement.setAttribute('width', '200px');
imageElement.setAttribute('height', '200px');
var div = document.createElement("div");
div.appendChild(document.createTextNode(entry.title));
div.appendChild(imageElement);
container.appendChild(div);
}
}
}
});
}
google.setOnLoadCallback(initialize);
</script>
</head>
<body><div id="feed"></div></body
我正在使用 Google Feed API,但循环 xml 标记的部分即使使用其他加载 Feed 的方法也应该可以工作。类似的问题在这里:Google Feed API - returning media:thumbnail
关于javascript - 解析RSS命名空间媒体:Thumbnail (js/jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946600/