Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт с парсингом xml (https://javascript.ru/forum/misc/37878-skript-s-parsingom-xml.html)

bona 12.05.2013 14:17

Скрипт с парсингом xml
 
Всем привет. У меня проблема со скриптом,который выводит темы форума пользователя сайта ucoz. Вот код.
<div id="test"></div> 
 <script type="text/javascript"> 
 $.get( 
 'http://zveriki.ucoz.com/api/forum/0-1-1-3-2', 
 function(data){ 
 
 var mydata = new Array(); 
 var i = 0; 
 $('name', data).each(function(){ 
 if($(this).text()=='TOPIC_LINK'){ 
 if(mydata[$(this).text()] == undefined) mydata[$(this).text()] = new Array(); 
 mydata[$(this).text()][i] = $(this).next().text(); 
 i++; 
 } 
 });
var mydata2 = new Array(); 
 var i2 = 0; 
 $('name', data).each(function(){ 
 if($(this).text()=='TOPIC_NAME'){ 
 if(mydata2[$(this).text()] == undefined) mydata2[$(this).text()] = new Array(); 
 mydata2[$(this).text()][i2] = $(this).next().text(); 
 i2++; 
 } 
 });
for(var i3=0;i3<mydata.length;i3++){
 $('#test').html('<a href="'+mydata['TOPIC_LINK'][i3]+'">'+mydata2['TOPIC_NAME'][i3]+'</a> ');
}
 }, 
 'xml' 
 ); 
 </script>


Внимание прошу обратить на последний цикл,т.к. без него,к примеру,вот так,все работает нормально:
<div id="test"></div> 
 <script type="text/javascript"> 
 $.get( 
 'http://zveriki.ucoz.com/api/forum/0-1-1-3-2', 
 function(data){ 
 
 var mydata = new Array(); 
 var i = 0; 
 $('name', data).each(function(){ 
 if($(this).text()=='TOPIC_LINK'){ 
 if(mydata[$(this).text()] == undefined) mydata[$(this).text()] = new Array(); 
 mydata[$(this).text()][i] = $(this).next().text(); 
 i++; 
 } 
 });
var mydata2 = new Array(); 
 var i2 = 0; 
 $('name', data).each(function(){ 
 if($(this).text()=='TOPIC_NAME'){ 
 if(mydata2[$(this).text()] == undefined) mydata2[$(this).text()] = new Array(); 
 mydata2[$(this).text()][i2] = $(this).next().text(); 
 i2++; 
 } 
 });
 $('#test').html('<a href="'+mydata['TOPIC_LINK'][1]+'">'+mydata2['TOPIC_NAME'][1]+'</a> ');
 }, 
 'xml' 
 ); 
 </script>

vadim5june 12.05.2013 14:52

и что не работает?
какая структура xml-файла?

bona 12.05.2013 15:27

vadim5june,xml тут ни при чем. Чисто со скриптом проблема,без цикла робит,с циклом - нет,возможно,с синтаксисом что-то не то.

vadim5june 12.05.2013 15:32

Цитата:

Сообщение от bona (Сообщение 250013)
vadim5june,xml тут ни при чем. Чисто со скриптом проблема,без цикла робит,с циклом - нет,возможно,с синтаксисом что-то не то.

да понял-но он выводит последний элемент?
Надо что то типа
var t='';
for(var i3=0;i3<mydata.length;i3++){
t+='<a href="'+mydata['TOPIC_LINK'][i3]+'">'+mydata2['TOPIC_NAME'][i3]+'</a> ';};
$('#test').html(t);

bona 12.05.2013 15:50

vadim5june,не,скрипт вообще ничего не выводит,с вашим кодом тоже. Но я тут поэкспериментировала: если написать вместо i3<mydata.length i3<=mydata.length,один элемент все же выводится,но там должен быть далеко не один.

vadim5june 12.05.2013 15:57

Цитата:

Сообщение от bona
один элемент все же выводится,но там должен быть далеко не один.

Потому что каждый $('#test').html('... затирает предыдущий
надо $('#test').append('.... тогда добавлять будет
ну или как у меня-я там исправил попробуйте еще

bona 12.05.2013 16:04

С append та же фигня. В коде все верно?
var t='';
for(var i3=0;i3<=mydata.length;i3++){
t+='<a href="'+mydata['TOPIC_LINK'][i3]+'">'+mydata2['TOPIC_NAME'][i3]+'</a> ';};
$('#test').append(t);

vadim5june 12.05.2013 16:10

все верно только равно не надо таки i3<mydata.length
поставьте alert
for(var i3=0;i3<mydata.length;i3++){alert(t);...

bona 12.05.2013 16:14

Ничего не выводит,а если написать <=,то пустой alert.

vadim5june 12.05.2013 16:17

удалил


Часовой пояс GMT +3, время: 03:34.