leon2009sp,
Если нужна динамика, то тогда надо использовать навигацию по DOM дереву.
testXML.xml
<?xml version="1.0" encoding="utf-8"?>
<category>
<city name="Москва">
<station>Белорусский</station>
<station>Казанский</station>
<station>Киевский</station>
<station>Курский</station>
<station>Октябрьский</station>
<station>Павелецкий</station>
<station>Рижский</station>
<station>Савеловский</station>
<station>Ярославский</station>
</city>
<city name="Санкт-Петербург">
<station>Балтийский</station>
<station>Варшавский</station>
<station>Витебский</station>
<station>Ладожский</station>
<station>Московский</station>
<station>Финляндский</station>
</city>
</category>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Документ без названия</title>
<style>
#station{
margin-left : 150px;
}
</style>
<script>
function loadXMLDoc(filename) {
if (window.ActiveXObject) {
xhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
else {
xhttp = new XMLHttpRequest();
}
xhttp.open("GET", filename, false);
try { xhttp.responseType = "msxml-document" } catch (err) { } // Helping IE11
xhttp.send(null);
return xhttp.responseXML;
}
document.addEventListener('DOMContentLoaded', function () {
var xml = loadXMLDoc("testXML.xml"),
selCity = document.querySelector('#city'),
selStation = document.querySelector('#station'),
i;
[].forEach.call(xml.querySelectorAll('city'), function (el) {
selCity.add(new Option(el.getAttribute('name'), el.getAttribute('name')))
})
selCity.addEventListener('change', function () {
selStation.options.length = 0 , i=0;
[].forEach.call(xml.querySelectorAll('city[name=' + this.value + '] > station'), function (el) {
selStation.add(new Option(el.textContent, ++i));
})
})
})
</script>
</head>
<body>
<select id="city"><option selected>Выберите город</option></select>
<select id="station"></select>
</body>
</html>
http://pixs.ru/showimage/showpng_8266993_20819220.png