Разборка Xml C помощью Ajax

Статус
Закрыто для дальнейших ответов.

POLTER

Active Member
Регистрация
03.09.2006
Сообщения
29
Здравствуйте!
Вобщем мне нужно разобрать xml документ, к примеру такой, простенький:
<?xml version="1.0" encoding="utf-8" ?>
Код:
<channel>
  <message>
	<login>test login</login>
	<text>test message</text>
  </message>
  <message>
	<login>test login2</login>
	<text>test message2</text>
  </message>
</channel>
После загрузки xml-ки я вызываю функцию:
Код:
function parse_xml(){
  var xmlDoc=this.req.responseXML.documentElement;
  var xRows=xmlDoc.getElementsByTagName('message');
  for(i=0;i<xRows.length;i++){
	var login = xRows[i].childNodes[0].firstChild.nodeValue;
	var text = xRows[i].childNodes[1].firstChild.nodeValue;
	var response=document.getElementById("response");
  document.write(login);
   }
}
В Internet Explorer-e все прекрасно работает, но в Opera, FireFox, выдает ошибку. Вот что выдает файрфокс:
Ошибка: xRows.childNodes[0].firstChild has no properties
Источник: ***
Строка: 7

В опере мне пишет
message: Statement on line 9: Could not convert undefined or null to object
var text = xRows.childNodes[1].firstChild.nodeValue;

Не знаете, в чем может быть проблема??
Спасибо заранее!!
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Ни Опера, ни Огнелис не увидели объект xRows.childNodes[1].firstChild.

Воспользуйтесь любым DOM-редактором чтобы посмотреть структуру документа.
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
кстати... APTANA такая штука есть для этого
 

POLTER

Active Member
Регистрация
03.09.2006
Сообщения
29
Спасибо за совет, посмотрел DOM редактором FireFox-a, все нужные мне элементы существуют и корректно расположены..... Я попробовал аналогичным кодом вывести содержимое DOM элементов HTML страницы тегов -- все прекрасно работает.. когда смотрю содержимое responseXML - уже не работает ни в фоксе ни в опере. Кстати, я обнаружил, что если удалит все вложенные в <message> теги, и выводить просто содержимое - то все ок. когда пытаюсь вывести содержимое любого вложенного тега - то сразу перестает работать, ругается что объект undefined...
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
используйте при выводе [путь-до-элемента].innerText, вдруг поможет...
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
deMone, innerText не существует для фаерфокса точно...
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Ну я и говорю: вдруг поможет. сам не пробовал.
 

POLTER

Active Member
Регистрация
03.09.2006
Сообщения
29
Не, не работает :unsure: ...
Я вначале думал, что это у меня проблемы с DOM, но попробовал этим же самым кодом вывести элемент из HTML тега типа <p><b>test1</b><i>test2</i></p> - все работает.. проблемы только когда вывожу данные из вложенных элементов XML :wacko:
 

POLTER

Active Member
Регистрация
03.09.2006
Сообщения
29
Не знаете, что еще можно сделать??
Все прекрасно работает если вырираю данные из единожды вложенного элемента (типа как <test><el>value</el></test>)
Как только пытаюсь выбрать из дважды вложенного - <test><el><el2>value</el2></el></test>, уже в GECKO броузерах не работает...
 

POLTER

Active Member
Регистрация
03.09.2006
Сообщения
29
Все, проблему решил..
 

AstRonin

Новичок
Регистрация
26.07.2007
Сообщения
2
Все, проблему решил..
Скажишь как?

у меня аналогичная проблема, но когда получаю уже данные с сервера:
в опере работает идеально, а фаерфокс и эксплорер ругаются
(has no properties)

var XMLRes = req.responseXML;
getGoods(XMLRes.documentElement);
 

AstRonin

Новичок
Регистрация
26.07.2007
Сообщения
2
сорри, разбрался.
только что дошло, что нужно поставить:

Код:
header ('Content-Type: text/xml');
 
Статус
Закрыто для дальнейших ответов.
Верх Низ