Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: XML & JavaScript [2]
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): « 1 [2] 

> Описание: Как подгрузить XML в JavaScript
Павел
Отправлено: 10 Января, 2006 - 00:52:21
Post Id



Junior Member


Покинул форум
Сообщений всего: 71
Дата рег-ции: Июль 2005  
Откуда: Санкт-Петербург

Карма 0




ETC пишет:
NN6 это настолько древнее ядро Gecko, что уже нет.

А + около 6 что-нибудь значит для вас? 6+ видимо относится и к более новым ядрам, в т.ч. 1.8 (или 1.7, не помню) на котором сидит Netscape 8, он же наполовину FireFox 1.0.7...
 
 Top
Павел
Отправлено: 14 Января, 2006 - 04:07:58
Post Id



Junior Member


Покинул форум
Сообщений всего: 71
Дата рег-ции: Июль 2005  
Откуда: Санкт-Петербург

Карма 0




До меня тут только что дошло... ГДЕ можно найти информацию о XML? Правильно! http://www.xml.com

http://www.xml.com/pub/a/2005/02...ttp-request.html
Но всё-равно спасибо, ЕTC, за ссылку!
 
 Top
ETC Администратор
Отправлено: 14 Января, 2006 - 07:28:41
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Павел пишет:
наполовину FireFox 1.0.7

Тем не менее на дворе 1.5 уже...
 
 Top
Павел
Отправлено: 14 Января, 2006 - 07:43:44
Post Id



Junior Member


Покинул форум
Сообщений всего: 71
Дата рег-ции: Июль 2005  
Откуда: Санкт-Петербург

Карма 0




Миниотчёт. Вдруг кому пригодится...
Скрипт загружает через XMLHttpRequest файл XML (внутри RSS 2.0, кому надо под друие переделает) и преобразует XML в массив объектов JavaScript, согласно структуре XML файла.

rss.xml
CODE:

<?xml version="1.0" encoding="Windows-1251"?>
<rss version="2.0">
<channel>
<generator>My Hands</generator>
<pubDate>01 Jan 2006 00:20:07 +0300</pubDate>
<title>Новости KroBel.narod.ru</title>
<description>Новости и обновления на сайте KroBbel.narod.ru</description>
<link>http://10.2.1.21</link>
<copyright>Павел Аксютин</copyright>
<language>ru-ru</language>
<item>
<title>Теперь работает RSS</title>
<description>Теперь следить за новостями и обновлениями можно следить при помощи RSS канала...</description>
<pubDate>8 Jan 2006 11:35:05 +0300</pubDate>
<link>http://10.2.1.21/about/what_is_rss/</link>
</item>
<item>
<title>С Новым Годом!</title>
<description>Всего в новом 2006 году!</description>
<pubDate>1 Jan 2006 02:32:31 +0300 </pubDate>
<link>http://10.2.1.21</link>
</item>
</channel>
</rss>

Ссылки ясен пень пока не те...
Теперь самое интересное rss_reader.js
CODE:
var req;
var output = new Array();

function loadXMLDoc(url) {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = RssReader;
req.open("GET", url, true);
req.send(null);
} else if (window.ActiveXObject) {
//Для IE/WIN
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = RssReader;
req.open("GET", url, true);
req.send();
}
}
}

function RssReader() {
// only if req shows "complete"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
var i, j, oneRecord, oneObject
req = req.responseXML.documentElement
reqData = req.getElementsByTagName('channel')[0]
for ( i = 0; i < reqData.childNodes.length; i++) {
if ((reqData.childNodes[i].nodeType == 1) && (reqData.childNodes[i].tagName == "item")) {
// == "item", т.к. всё остальное лишнее...
oneRecord = reqData.childNodes[i];
oneObject = output[output.length] = new Object();
for (j = 0; j < oneRecord.childNodes.length; j++) {
if (oneRecord.childNodes[j].nodeType == 1) {
oneObject[oneRecord.childNodes[j].tagName] = oneRecord.childNodes[j].firstChild.nodeValue;
}
}
}
}
} else {
alert("Ошибка при загрузке данных XML:\n" + req.statusText);
}
}

/* Debug */
for (var k=0; k < output.length; k++) {
alert(output[k].title + "\n" + output[k].description)
}
/* End Debug */
}


А в самом HTML, соответственно подгружаем rss_reader.js и вызываем loadXMLDoc("/rss.xml"Подмигивание

В итоге получаем массив output объектов item со свойствами, названия которых соответствуют названию тегов title, description, link и pubDate, соответственно...

Если нужно получить title первой записи, соответственно output[0].title

P.S. Простите, что так много...
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« JavaScript »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0399]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33