Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 09:14   #1
squa
Новичок
Джуниор
 
Аватар для squa
 
Регистрация: 07.12.2010
Сообщений: 1
По умолчанию XML парсер

Здравствуйте , помогите пожалуйста с проблемой , голову сломал уже над этим. Задача сделать XML парсер на js , данные передавать обьекту (паук который лазит по xml и собирает иx). вот xml файл , взятый для примера , абсолютно простой:

Код:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<data>
<div>
<p>DIV N 1 ... </p>
<p>potomok 1 von Div1</p>
<p>potomok 2 von Div1</p>
<p>potomok 3 von Div1</p>
<p>Es Klappt! Poslednij potomok  Div1</p>
</div>
<div>
<p>DIV N 2</p>
<p>es soll auch</p>
<p>gehen</p>
<p>Es Klappt also auch!</p>
</div>
</data>
</root>
а вот обьект spaun и сам парсер:
Код:
//__________тут должны храниться данные

var spaun=new Object();
  spaun.dataChild=new Array();    
  spaun.child=new Array();
  spaun.childValue=new Array();
  spaun.dataCount=0;
  spaun.childCount=new Array();
       
//________XML PARSER___________________________

   function megaParser(obj,file){
   	var count=new Array();
   	var xml=obj.getElementsByTagName('data')[0];
   	var dataChild=xml.childNodes;

	for(var i=0;i<dataChild.length;i++){
		spaun.childCount[i]=0;
		//alert(dataChild.length);
		}
	for(var i=0;i<dataChild.length;i++){

 		if(dataChild[i].firstChild  && dataChild.nodeName!=="#text"){
   		 	var innerChild=dataChild[i].childNodes;
   		 	spaun.dataCount++;
   		 	spaun.childCount[i]=innerChild.length;
   		 	spaun.dataChild[i]=dataChild[i].nodeName;

                        count[i]=innerChild.length;

		       spaun.child[i]=new Array();
    		       spaun.childValue[i]=new Array();

    for(var j=0;j<count[i];j++){
		if(innerChild[j].firstChild && innerChild[j].nodeName!=="#text"){
    		spaun.child[i][j]=innerChild[j].nodeName;
 			spaun.childValue[i][j]=innerChild[j].firstChild.nodeValue;
 			//alert(spaun.child[i][j]+"  "+spaun.childValue[i][j]);
      		}
     	   }
    	}
     }
  }
Проблемы возникают в FF например ,когда я пытаюсь в другой какой то фунции использовать свойства обьекта выдает ошибку
Код:
  spaun.child[i] is undefined
не пойму как он может быть неопределен если в парсере присваиваются значения , подскажите в чем ошибка , и прошу не ругаться если все совсем плохо , я запарился уже с этим парсером .
Этот механизм с обьектом я сам придумал и вообще не знаю правильно ли так делать, но хочу понять в чем тут беда
squa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсер на C# newerwiner C# (си шарп) 1 08.05.2011 16:16
сформировать xml-файл на основе другого xml-файла NieL Общие вопросы Delphi 2 21.12.2010 15:49
Парсер Gismeteo(xml) Homjak Общие вопросы Delphi 0 04.10.2010 08:15
Парсер Ronin333 Общие вопросы C/C++ 3 15.04.2010 14:00
парсер XML, не видит XML тэги supercelt PHP 3 02.11.2009 19:18