[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: парсинг XML
Romms
Любі друзі, вот как-то не доходит ко мне эта схема реализации DOM :(

Вот есть ответ сервера (XML)
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>
0</a>

<row>
<id>
1</id>
<name>
вафіва</name>
<text>
іфва фіва фіва <b>івафівафі</b></text>
<date>
22.08.2011 10:27</date>

<editbyadmin>
0</editbyadmin>
<dateofediting></dateofediting>

</row>

<row>
<id>
5</id>
<name>
віаів</name>
<text>
іваsd fasd</text>
<date>
22.08.2011 11:13</date>

<editbyadmin>
0</editbyadmin>
<dateofediting></dateofediting>

</row>

<row>
<id>
6</id>
<name>
safds fasd</name>
<text>
dsf sd<br /><img src="/imgs/smiles/smile.gif" alt=":)" /></text>
<date>
23.08.2011 16:39</date>

<editbyadmin>
1</editbyadmin>
<dateofediting>
23.08.2011 22:44</dateofediting>

</row>

</root>


Обыкновенный код запроса:
        refreshXmlHttp.open("GET",url,true);
refreshXmlHttp.setRequestHeader("Content-type", "text/xml");
refreshXmlHttp.send(null);
refreshXmlHttp.onreadystatechange = function()
{
if (refreshXmlHttp.readyState==4);
}

Получить текст тега <a> я могу, а вот как мне обработать по порядку теги <row>?

хочу получить подследственно значения id,name и т.д.



Спустя 23 минуты (24.08.2011 - 12:24) ApuktaChehov написал(а):
Все просто.
Пусть root будет объектом. Тогда все элементы row, это
var row_list = root.getElementsByTagName('row');


теперь нужно пройти по всем элементам row, которые у нас лежат в row_list :
for(i = 0; i < row_list.length; i++) {
var cur_row = row[i]; //Это текущий элементы row, в каждой интерации цикла.
var id = cur_row.getElementsByTagName('id'); //элемент id
var name = cur_row.getElementsByTagName('name'); //элемент name
var text = cur_row.getElementsByTagName('text'); //элемент text
var date = cur_row.getElementsByTagName('date'); //элемент date
var editbyadmin = cur_row.getElementsByTagName('editbyadmin'); //элемент editbyadmin
var dateofediting = cur_row.getElementsByTagName('dateofediting'); //элемент dateofediting
}


таким вот образом, мы достучались до внутренних элементов DOM-дереве.

Забыл про получения значений, это можно сделать вот так:
var id = cur_row.getElementsByTagName('id').childNodes[0].nodeValue; //значение элемента id

Спустя 53 минуты, 1 секунда (24.08.2011 - 13:17) Romms написал(а):
ApuktaChehov, спасибо!)

а я вот хотел добывать через childNodes, так и нифига не получалось rolleyes.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.