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;
}