我正在尝试通过 JavaScript 从 XML 文件中选择某些元素,我已经让它在 Firefox、Chrome 和 IE9+ 中工作,但 IE8 被证明是一个真正的绊脚石,我正在使用下面的代码返回 XML 文件:
function httpGet(theUrl) {
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', theUrl, false);
xmlHttp.send();
if(window.DOMParser) {
var parser = new DOMParser();
var doc = parser.parseFromString(xmlHttp.responseText, 'text/xml');
return doc;
}
else {
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(xmlHttp.responseText);
return xmlDocument;
}
}
然后,我使用以下选择器来列出 XML 文件中的某些项目:
var rssData = httpGet(rssFeed);
var allTitles = convertToArray(rssData.getElementsByTagName('title'));
var allDates = convertToArray(rssData.getElementsByTagName('pubDate'));
var allText = convertToArray(rssData.getElementsByTagName('text'));
然后我将数组项连接在一起并将一个项innerHTML
设置为该值(如果需要,我可以提供此代码)
奇怪的是 IE8 返回正确数量的项目,但每个项目的值undefined
与实际值相反,例如“Hello world”
我已经为此奋斗了几个小时,但仍然一片空白……有人知道我做错了什么吗?
编辑:这里要求的是转换为数组函数
function convertToArray(htmlCollection) {
var nodes = [];
var collectionLength = htmlCollection.length;
for(i = 0; i < collectionLength; i++) {
nodes.push(htmlCollection[i]);
}
return nodes;
}