Я работаю над простым «фоном движка обоев», если кто-нибудь из вас знаком с этим инструментом. Идея была бы такова:
Вы можете отредактировать простой XML-файл, чтобы добавить свою песню, название, автора и имя файла песни.
Пока все просто, ясделал XML-файл, который выглядит следующим образом:
<?xml version='1.0'?>
<songs>
<song>
<title>Test</title>
<artist>Test</artist>
<file>test.mp3</file>
</song>
<song>
<title>Test</title>
<artist>Test</artist>
<file>test.mp3</file>
</song>
<song>
<title>Test</title>
<artist>Test</artist>
<file>test.mp3</file>
</song>
<song>
<title>Test</title>
<artist>Test</artist>
<file>test.mp3</file>
</song>
</songs>
После этого вы загрузите фон в движке обоев, и он прочитает XML-файл и выберет случайную песню. Затем он просто воспроизведет песню, используя файловый узел, покажет автора где-то на экране и покажет название песни.
Вот когда у меня возникла проблема, мне удалось нормально разобрать файл xml, используя этокусок кода:
xmlHttp = new window.XMLHttpRequest();
xmlHttp.open("GET","./xml/songs.xml",false);
xmlHttp.send(null);
xmlDoc = xmlHttp.responseXML;
Но что вызвало у меня проблемы, так это способ, которым я должен перемещаться по этим узлам.
То, что я хотел бы сделать, это выбрать случайный узел «песня» тогдавыберите дочерний элемент 0, чтобы получить заголовок, выберите дочерний элемент 1, чтобы получить исполнителя, и так далее. Но, видимо, это работает по-другому.
Я посмотрел на Google, но единственные решения, которые я нашел, это то, что вы должны искать непосредственно заголовочный узел и так далее. Но мне не очень нравится эта идея.
Возможно ли сделать это так, как я описал или подобное?
Спасибо за ваше время и хорошего дня.
PS: вот код, который я использовал для навигации по узлам
var x = xmlDoc.getElementsByTagName("song");
var y = x[Math.floor(Math.random() * Math.floor(x.length))];
var z = y.childNodes[0].nodeValue;
alert(z);