Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Парсинг XML (https://javascript.ru/forum/misc/3326-parsing-xml.html)

dabutch 08.04.2009 08:51

Парсинг XML
 
Доброго все времени суток,

на запрос сервер возвращает:

Код:

<?xml version="1.0" encoding="UTF-8" ?>
<result>some text here</result>

результат читается так:

alert(doc.documentElement.firstChild.nodeValue);


Скажите пожалуйста, как прочитать результат по имени поля (result)?

так не читается...

alert(doc.documentElement.getElementsByTagName('result')[0].nodeValue);

Kolyaj 08.04.2009 10:40

Используйте JSON и не мучайтесь.

Riim 08.04.2009 10:43

Запустите так:
alert(doc);
alert(doc.documentElement);
alert(doc.documentElement.getElementsByTagName);
alert(doc.documentElement.getElementsByTagName('result'));
alert(doc.documentElement.getElementsByTagName('result')[0]);
alert(doc.documentElement.getElementsByTagName('result')[0].nodeValue);


и все станет ясно

Riim 08.04.2009 10:44

Цитата:

Сообщение от Kolyaj
Используйте JSON и не мучайтесь.

Хороший совет. Поддерживаю.

AzriMan 08.04.2009 11:11

а что такое doc.documentElement?

--edited
p.s. вот это мне везет на цифры.
время поста: 11:11
карма: 10
сообщение: 101

что закодировано этим бинарным сообщением? )))

Riim 08.04.2009 11:16

doc есть раз alert(doc.documentElement.firstChild.nodeValue); работает. doc.documentElement в xml тоже 99,9% есть. А вот getElementsByTagName может и не быть. Пробовать надо.

Riim 08.04.2009 11:21

Цитата:

Сообщение от AzriMan
карма: 10

а что за карма такая. Зачем она?

AzriMan 08.04.2009 11:40

Цитата:

Сообщение от Riim (Сообщение 16139)
doc есть раз alert(doc.documentElement.firstChild.nodeValue); работает. doc.documentElement в xml тоже 99,9% есть. А вот getElementsByTagName может и не быть. Пробовать надо.

дело не в том, работает, или нет. откуда вы это взяли?
в DOM есть объект doc? если я не ошибаюсь - он называется document. (если я не прав - поправьте)

в DOM у объекта document есть метод documentElement.

или при DOCTYPE xml есть какие-то отличия при работе с объектной моделью документа?

Riim 08.04.2009 11:43

Я вот это имел ввиду:
var doc = document;

Riim 08.04.2009 11:47

Цитата:

Сообщение от AzriMan
или при DOCTYPE xml есть какие-то отличия при работе с объектной моделью документа?

Да.
Я бы удивился если бы их не было.

AzriMan 08.04.2009 12:03

Цитата:

Сообщение от Riim (Сообщение 16143)
Я вот это имел ввиду:
var doc = document;

мне как-бы было не понятно, откуда этот 'doc' был взят, поэтому я и задал вопрос, что это такое.

а что браузер отвечает на такой запрос?
alert(document.getElementsByTagName('result')[0].nodeValue);

Riim 08.04.2009 12:12

Цитата:

Сообщение от AzriMan
а что браузер отвечает на такой запрос?

Без понятия. Там просто несколько алертов и в каждом обращение на 1 уровень глубже. Очередной алерт выведет undefined и после него произойдет ошибка. По тому, какой вывел undefined, можно понять чего нет в xml, по сравнению с html. Я думаю, что нет метода getElementsByTagName.

Kolyaj 08.04.2009 12:17

Прекращайте разговор ни о чем. При чем здесь document, если человек XML парсит?

dabutch,
У вас result и есть documentElement, поэтому ничего не находится.

Riim 08.04.2009 12:20

Цитата:

Сообщение от Kolyaj
У вас result и есть documentElement, поэтому ничего не находится

млин, а ведь точно.

Цитата:

Сообщение от Kolyaj
Прекращайте разговор ни о чем

Почему ни о чем? Ошибка была бы после предпоследнего алерта, то есть getElementsByTagName существует. И дальше вопрос: почему он выбрал 0 элементов? Я просто объяснил как нужно самому определять такие ошибки, что бы не приходилось обращаться за помощью.

x-yuri 09.04.2009 05:16

getElementsByTagName - это часть интерфейсов Document, Element, т.е. В xml должна быть. проблема дальше
Цитата:

а что такое doc.documentElement?
ссылка на корневой элемент - http://www.w3.org/TR/1998/REC-DOM-Le...tml#ID-87CD092

Riim 09.04.2009 07:25

Цитата:

Сообщение от x-yuri
getElementsByTagName - это часть интерфейсов Document, Element, т.е. В xml должна быть. проблема дальше

Я давно с чистым xml не работал, но точно помню, что чего-то важного, что есть в html, я в нем не обнаружил, чем был сильно удивлен.

Kolyaj 09.04.2009 09:19

Цитата:

Сообщение от Riim
но точно помню, что чего-то важного, что есть в html, я в нем не обнаружил

innerHTML наверно :)

x-yuri 09.04.2009 09:48

Kolyaj, ты читаешь мои мысли, я так и думал ответить, но потом решил, что это не важно :blink:


Часовой пояс GMT +3, время: 13:41.