Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java и Ajax - Parsing XML строки от Servleta, не парсиццо : ( 
:(
    Опции темы
Dzo
Дата 4.2.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 22.4.2008

Репутация: нет
Всего: 1



Так сначала кусочки кода:

AjaxRequestHandling Servlet:

Код


PrintWriter out = response.getWriter();
                
// create XML with data
returnXML = new StringBuffer("\r\n<video>");
returnXML.append("\r\n<i>"+i+"</i>"); // i is sent to make sure we do not generate the same movie two times in a row
returnXML.append("\r\n<title>"+videoTitles.get(i)+"</title>");
returnXML.append("\r\n<link>"+videoLinks.get(i)+"</link>");
returnXML.append("\r\n<description>"+videoShortDescriptions.get(i)+"</description>");
returnXML.append("\r\n</video>");
                
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
System.out.println(returnXML.toString());
out.print(returnXML.toString());



XML файл выдаеццо такой:


Код

<video>
<i>3</i>
<title>Test3</title>
<link>http://www.youtube.com/v/LKutpR9e7JY&hl=en&fs=1</link>
<description>haha</description>
</video>



ajax.js - запощу весь, потому что не уверен что конкретно нужно

Код


var iChecker;
var xmlHttp;

function ajaxFunction() {
    
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    } catch (e) {      
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
                    
            try {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    return xmlHttp;
}
            
function nextVideo() {
                
    var xmlHttp = ajaxFunction();
    
    xmlHttp.open("GET","AjaxRequestsHandling?action=nextvideo",true);
    xmlHttp.onreadystatechange=callback;
    xmlHttp.send(null);            
}

function mineXMLInMS() {

    alert("HEY!");
    var response = xmlHttp.responseText;
    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.loadXML(resp);
    
    // start mining
    i = xmlDoc.getElementsByTagName('i');
    iChecker = i[0].firstChild.data;
    
    titleVal = xmlDoc.getElementsByTagName('title');
    var title = document.getElementById('videoTitle');
    title.innerHTML=titleVal[0].firstChild.data;
    
}

function mineXML() {

    var response = xmlHttp.responseText;
    var parser = new DOMParser();
    var dom = parser.parseFromString(response,"text/xml");
    
    // start mining
    titleVal = dom.getElementsByTagName("title");
    var title = document.getElementById('videoTitle');
        [color=green]alert("Я вылажу без проблем!")[/color]
    title.innerHTML=titleVal[0].childNodes[0].nodeValue;
        [color=red]alert("А вот я уже не вылажу")[/color]
}

function callback() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {    
            if (window.XMLHttpRequest) {
                mineXML();
            }
            else if (window.ActiveXObject) {
                mineXMLInMS();
            }
        }
    }
}



Первый вопрос:

Если запускать это счастье из Firefox, то алерт отмеченный зеленым цветом в функции mineXML() вылазит без проблем.
Второй же алерт уже не вылазит. То есть проблема в title.innerHTML=titleVal[0].childNodes[0].nodeValue;? Что там не так? : (

Второй вопрос:

Если это все запускать из IE, то даже не отправляется запрос к сервлету и IE выплевывает ошибку:

Строка: 57
Символ: 2
Ошибка: "DomParser" - определение отсутствует
Код: 0

Как лечить?

P.S - было бы хорошо, чтобы во вставках кода можно было отмечать нужно цветом интересующие места.

Это сообщение отредактировал(а) Dzo - 4.2.2009, 20:04
PM MAIL   Вверх
AntonSaburov
Дата 4.2.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



А не смущает, что это форум по Java, а не JavaScript ?
PM MAIL WWW ICQ   Вверх
Dzo
Дата 4.2.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 22.4.2008

Репутация: нет
Всего: 1



Нет : )

Но теперь да...
PM MAIL   Вверх
An6rey
Дата 4.2.2009, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.10.2008

Репутация: 1
Всего: 5



А почему бы не почитать документацию? Тут не то чтобы ошибки, а просто невладение метриалом.
Например:
- парсить XML не нужно есть свойство responseXML типа Document
- в ИЕ7 есть объект window.XMLHttpRquest и ошибка с DOMParser поэтому наверное вылазит
- для текстовых данных лучше использовать всегда firstChild.data - хотя по спецификации вроде бы можно и с  nodeValue, но где-то так не работало (кажется в старой Опере)




PM MAIL   Вверх
Dzo
Дата 5.2.2009, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 22.4.2008

Репутация: нет
Всего: 1



Ну проблема в том, что это мои первые проба с AJAXом, и примеры взяты из книжки... Сложно начать что-то копать, когда не знаешь откуда подступиться, если даже примеры из книжки не работают.
PM MAIL   Вверх
An6rey
Дата 5.2.2009, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.10.2008

Репутация: 1
Всего: 5



Вот более работающий пример

http://www.w3schools.com/Ajax/ajax_responsexml.asp

Это сообщение отредактировал(а) An6rey - 5.2.2009, 01:47
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.