簡體   English   中英

將我的XML文件的內容加載到Javascript數組中的腳本

[英]Script to load contents of my XML file into array in Javascript

我有一個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的內容,但是我看不到為什么。 任何建議或幫助,將不勝感激。

謝謝

那應該工作

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM