Показать сообщение отдельно
  #1 (permalink)  
Старый 13.07.2009, 19:30
Аспирант
Отправить личное сообщение для uonax Посмотреть профиль Найти все сообщения от uonax
 
Регистрация: 13.07.2009
Сообщений: 38

Как сделать разбор xml-документа и создание нового списка?
Делаю форму, в которой при выборе города подгружаются районы для данного города.
У меня список районов (и их номеров) выводится в виде XML-документа (этот xml-документ создаётся с помощью php):
<?xml version="1.0" encoding="windows-1251"?>
<raions><rv>1</rv><rn>Железнодорожный</rn><rv>2</rv><rn>Ленинский</rn></raions>

Здесь в тегах <rv> содержатся номера районов (без номеров никуда, по ним происходит идентификация каждого района), а в <rn> - названия районов.

Перед отправкой браузеру этого XML-документа ставлю заголовок:
header("Content-Type: text/xml; charset=windows-1251");

Не привожу саму функцию с XMLHttpReques-объектом, так как здесь у меня проблем не возникает. Не знаю, как написать функцию inHTML(), в задачу которой входит отобразить список с районами.

if (xmlhttp.readyState==4)
{
inHTML();
}

В качестве responseText я без проблем могу увидеть данные, полученные от сервера (вижу xml-документ). Но мне надо из данных составить новый список из районов следующего вида (для каждого города названия и количество районов будут отличаться):
<select>
<option value="1">Железнодорожный</option>
<option value="2">Ленинский</option>
</select>

Может кто знает, как грамотно сделать такую вещь?

Здесь следует использовать свойство responseXML объекта XMLHttpRequest, а вот как его использовать мне не понятно.

Как сделать функцию, производящую разбор xml-документа? Может следует изменить структуру xml-документа? Конечно же можно было бы прямо на сервере составить данный список со всеми html-тегами, отправить его браузеру и в браузере вставить с помощью innerHTML, но innerHTML не поддерживается стандартом w3c, а значит использовать его всётаки не рекомендуется.

Последний раз редактировалось uonax, 13.07.2009 в 19:34.
Ответить с цитированием