Показать сообщение отдельно
  #9 (permalink)  
Старый 24.02.2016, 09:45
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

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
Ответить с цитированием