Nano Hash - криптовалюты, майнинг, программирование

Скрипт для загрузки содержимого моего XML-файла в массив в 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 так, как мне бы хотелось, но я не понимаю, почему это так. Любые предложения или помощь будут оценены.

Спасибо

26.11.2009

  • Извините, а где мы видим файл xml? Мы должны нажать на что-то на этой странице? 26.11.2009
  • Отредактировал ссылку на работу. Вы хоть представляете, что не так с моим javascript? 26.11.2009
  • Еще пара вопросов: Когда вы говорите, что это не загружает содержимое так, как вам хотелось бы, что сейчас происходит? 26.11.2009
  • Кроме того, это не совсем ответ на ваш вопрос, но будьте осторожны с объявлением переменных в JavaScript. Я только предполагаю, но я полагаю, что вы можете убедиться, что mymusic, xmlalbum, tracks и xmltrack получают «var» перед ними в вашей функции. 26.11.2009
  • Привет, спасибо за ваш ответ. Когда я помещаю предупреждение (mymusic), оно фактически выдает серию из 4 предупреждений подряд: первое — [object Object], второе [object Object], [object Object] и т. д., чтобы предупредить №. 4. Я проверил, что предупреждение не вложено в цикл for, так что это не может быть связано с этим. А что касается вашего второго пункта... Я попробую, тщетно надеюсь, что это что-то изменит! Спасибо 26.11.2009
  • Почему вы исключили dataFromTag из своего вопроса? вроде важно... 26.11.2009
  • Прости? Я не совсем уверен, что ты говоришь 26.11.2009

Ответы:


1

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

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;
    }
}
15.03.2012
  • в совете вы должны использовать firefox с расширением firebug, чтобы помочь вам отлаживать свой код с помощью функции console.log(your_variable) 16.03.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..