Скрипт для загрузки содержимого моего файла XML в массив в Javascript - PullRequest
2 голосов
/ 26 ноября 2009

У меня есть XML-файл, который можно просмотреть здесь, данных, относящихся к серии музыкальных альбомов, которые я хотел бы загрузить в javascript в массив под названием "mymusic" в следующей форме:

mymusic = [
  {
    title:,
    artist:,
    artwork:,
    tracks: [
      {
        tracktitle:,
        trackmp3:
      },
      {
        tracktitle:,
        trackmp3:
      }
    ]
  }
];

и т.д .; таким образом, в основном это массив альбомов, где каждый альбом представлен записью, полями которой являются название альбома, исполнитель альбома, обложка альбома и массив дорожек альбома (где каждая дорожка / индекс массива представлена запись с полями tracktitle и trackmp3.

Для этого у меня есть следующий javascript:

function getxml(){
    xmldoc = XML.load('music.xml');

    var xmlalbums = xmldoc.getElementsByTagName('album');
    mymusic = [];
    for(i = 0; i < xmlalbums.length; i++){
        xmlalbum = xmlalbums[i];
        mymusic[i] = {};
        mymusic[i].title = dataFromTag(xmlalbum,'title');
        mymusic[i].artist = dataFromTag(xmlalbum,'artist');
        mymusic[i].artwork = dataFromTag(xmlalbum, 'artwork');
        tracks = [];

        var xmltracks = xmlalbums[i].getElementsByTagName('track');
        for(var a = 0; a < xmltracks.length; a++){
            xmltrack = xmltracks[i];
            tracks[i] = {};
            tracks[i].tracktitle = dataFromTag(xmltrack, 'title');
            tracks[i].trackmp3 = dataFromTag(xmltrack, 'mp3');
            mymusic[i].tracks = tracks;
        }
    }
}

однако, это не загружает содержимое music.xml так, как мне бы хотелось, но я не понимаю, почему это так. Будем благодарны за любые предложения или помощь.

Спасибо

1 Ответ

0 голосов
/ 16 марта 2012

это должно работать

function getxml(){
    xmldoc = XML.load('music.xml');

    var xmlalbums = xmldoc.getElementsByTagName('album');
    mymusic = [];
    for(i = 0; i < xmlalbums.length; i++){
        xmlalbum = xmlalbums[i];
        mymusic[i] = {};
        mymusic[i].title = dataFromTag(xmlalbum,'title');
        mymusic[i].artist = dataFromTag(xmlalbum,'artist');
        mymusic[i].artwork = dataFromTag(xmlalbum, 'artwork');

        tracks = [];
        var xmltracks = xmlalbums[i].getElementsByTagName('track');
        for(var a = 0; a < xmltracks.length; a++){
            xmltrack = xmltracks[a];
            tracks[a] = {};
            tracks[a].tracktitle = dataFromTag(xmltrack, 'title');
            tracks[a].trackmp3 = dataFromTag(xmltrack, 'mp3');
        }

        mymusic[i].tracks = tracks;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...