|
|
|
| Народ! Подскажите, как можно при помощи JavaScript читать из XML-файла! | |
|
|
|
|
|
|
|
для: nytrogen
(29.05.2007 в 20:54)
| | смотри аттач | |
|
|
|
|
|
|
|
для: Crux
(29.05.2007 в 21:33)
| | А как им пользоваться-то? Это что, процедура JS? | |
|
|
|
|
|
|
|
для: Nytrogen
(29.05.2007 в 22:37)
| | Вот это я не понял, кто бы объяснил саму мысль?
// даем процессу загрузки догнать основной поток выполнения
setTimeout("drawTable('matchData')", 1000); | |
|
|
|
|
|
|
|
для: coloboc66
(30.05.2007 в 09:37)
| | ждем 1000мс чтоб успел загрузиться xml а потом запускаем функцию для обработки этого xml | |
|
|
|
|
|
|
|
для: Crux
(30.05.2007 в 12:37)
| | А это (необходимость ожидания) принципиальная штука, или так: на всякий случай - домыслы? | |
|
|
|
|
|
|
|
для: coloboc66
(31.05.2007 в 09:24)
| | принципиальная и даже важная!
суть вот в чем:
JS сам по себе не будет ждать пока загрузится XML, а будет выполнять следующие команды кода и естественно если XML не загрузился а его будут пытаться как-то обрабатывать, то возникнут ошибки и прочие неприятности. | |
|
|
|
|
|
|
|
для: Crux
(31.05.2007 в 12:40)
| | Полностью согласен - дождаться загрузки XML-объекта надо, чтобы его потом обработать.
Только вот способ выбран уж очень смешной: ждём 1000 миллисекунд и приступаем... а если не успеет загрузиться за это время?
Есть же вполне легитимное свойство readyState | |
|
|
|
|
|
|
|
для: CNT
(31.05.2007 в 15:19)
| | Но это свойство объекта XMLHTTPRequest. А если я загружаю документ объектом XMLDOM, то у него ведь нет такого свойства, или есть? | |
|
|
|
|
|
|
|
для: coloboc66
(31.05.2007 в 15:24)
| | А самому очень лень проверить?
Пропишите после xDoc.load(xFile); вызов окошка alert (xDoc.readyState); и сами убедитесь, что свойство такое имеется. При работе на локальном компе (если он у вас не совсем древний и потому медленный) alert покажет "четверку", сиречь "полностью загружено".
PS. Да и формирование таблицы автором сделано, извините, через заднее место.
Можно было просто взять строку: XDoc.text и рассплитовать её по пробелам - получится массив последовательных значений таблицы (по строкам и по ячейкам в них). Соответственно, запускается двойной цикл (строки, ячейки) и прописываются методом innerHTML значения для ячеек... | |
|
|
|
|
|
|
|
для: CNT
(31.05.2007 в 15:34)
| | Ну не знаю: у меня алерт показывает "undefined"... | |
|
|
|
|
|
|
|
для: CNT
(31.05.2007 в 15:19)
| | >Только вот способ выбран уж очень смешной: ждём 1000 миллисекунд и приступаем...
собственно да..
способ смешной.
пример взят из книги "Сборник рецептов JavaScript и DHTML" Д. Гудман | |
|
|
|