Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.11.2007, 12:30
RSovets вне форума Посмотреть профиль Отправить личное сообщение для RSovets Найти все сообщения от RSovets
  № 1  
Ответить с цитированием
RSovets
[+1.3 13.11.07]

Регистрация: Aug 2007
Сообщений: 19
По умолчанию Парсинг XML

Помогите пожалуйста разобраться, у меня есть xml файл такого вида
Код:
<images>
<pic>
<image>http://www.olgakataeva.com/maxiXML.php?adr=stream.jpg</image>
<full>http://www.olgakataeva.com/bol/stream.jpg</full>
<small>http://www.olgakataeva.com/mal/stream.jpg</small>
<caption>a stream</caption>
<descrip>&Green stream</descrip>
</pic>
<pic>
<image>http://www.olgakataeva.com/maxiXML.php?adr=river.jpg</image>
<full>http://www.olgakataeva.com/bol/river.jpg</full>
<small>http://www.olgakataeva.com/mal/river.jpg</small>
<caption>a river</caption>
<descrip>&Mariy-El</descrip>
</pic>
</images>
делаю парс таким образом
Код:
my_xml.parseXML(my_xml)
trace(my_xml.status)
pos_txt.text = my_xml.status;
xmlNode = this.firstChild; 
image = []; 
small = [];
full = [];
description = []; 
descrip = [];
total = xmlNode.childNodes.length;
trace(total); 
for (i=0; i<total; i++) { 
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue; 
full[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue; 
small[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue; 
description[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
descrip[i] = xmlNode.childNodes[i].childNodes[4].firstChild.nodeValue;
}
статус выдает - 0; значит сделал он все успешно, но вот как дальше... значение тотал выходит тоже равным 0 почему то, как и значения которые в цикле которые вообще undefined
как исправить?

Старый 17.11.2007, 14:53
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 2  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
какой ужас. человеком такая структура нечитаема.
Код:
<pic image="http://www.olgakataeva.com/maxiXML.php?adr=stream.jpg" full="http://www.olgakataeva.com/bol/stream.jpg" small="http://www.olgakataeva.com/mal/stream.jpg caption="a stream" descrip="&Green stream" />
в этом случае человеческий язык появится и в коде флеша
Код:
picNode.attributes.small
а так, рекомендую до парсинга сделать
Код:
trace(my_xml.toString());
может там и парсить-то нечего )))
и вот эта конструкция неясна
Код:
xmlNode = this.firstChild;
this в данном случае что?..
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 17.11.2007, 15:41
RSovets вне форума Посмотреть профиль Отправить личное сообщение для RSovets Найти все сообщения от RSovets
  № 3  
Ответить с цитированием
RSovets
[+1.3 13.11.07]

Регистрация: Aug 2007
Сообщений: 19
вместо this my_xml должен был быть

сделал так

Код:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>
<pic image="http://www.olgakataeva.com/maxiXML.php?adr=stream.jpg" full="http://www.olgakataeva.com/bol/stream.jpg" small="http://www.olgakataeva.com/mal/stream.jpg" caption="a stream" descrip="&Green stream" />
<pic image="http://www.olgakataeva.com/maxiXML.php?adr=stream.jpg" full="http://www.olgakataeva.com/bol/stream.jpg" small="http://www.olgakataeva.com/mal/stream.jpg" caption="a stream" descrip="&Green stream" />
<pic image="http://www.olgakataeva.com/maxiXML.php?adr=stream.jpg" full="http://www.olgakataeva.com/bol/stream.jpg" small="http://www.olgakataeva.com/mal/stream.jpg" caption="a stream" descrip="&Green stream" />
</images>
и
Код:
my_xml.parseXML(my_xml);
trace(my_xml.toString());
picNode = my_xml.firstChild; 
trace(picNode.attributes.small);
выводит сам текст хорошо, trace(picNode.attributes.small); выдает неизвестность
глупо себя ощущаю, но новичок ещё в этом увы


Последний раз редактировалось RSovets; 17.11.2007 в 15:55.
Старый 17.11.2007, 15:59
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 4  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
тэкс, а xml из файла чтоли загружаешь? или откуда он у тебя в my_xml берётся?..
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 17.11.2007, 16:03
RSovets вне форума Посмотреть профиль Отправить личное сообщение для RSovets Найти все сообщения от RSovets
  № 5  
Ответить с цитированием
RSovets
[+1.3 13.11.07]

Регистрация: Aug 2007
Сообщений: 19
вот полный код
Код:
my_xml = new XML()
my_xml.load("list_xml.xml")
my_xml.onLoad=function(success) {
 	if(!success || this.status){
 	 	return this.customErrorHandler(this.status, success)
 	}
 	this.customParsingProcedure()
}
my_xml.customParsingProcedure = function (){
		my_xml.parseXML(my_xml);
		trace(my_xml.toString());
		picNode = my_xml.firstChild; 
		trace(picNode.attributes.small);
}
my_xml.customErrorHandler = function (status, success){
trace("loaded: " + success +" valid: " + !this.status)
}

Старый 17.11.2007, 16:04
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 6  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
1. не надо его парсить.
2. ignoreWhite ему надо поставить.
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 17.11.2007, 16:10
RSovets вне форума Посмотреть профиль Отправить личное сообщение для RSovets Найти все сообщения от RSovets
  № 7  
Ответить с цитированием
RSovets
[+1.3 13.11.07]

Регистрация: Aug 2007
Сообщений: 19
подправил
Код:
my_xml.ignoreWhite = true; 
trace(my_xml.toString());
picNode = my_xml.firstChild; 
trace(picNode.attributes.small);
все равно

Старый 17.11.2007, 16:14
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 8  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
а ты протрейсь my_xml.firstChild.nodeName ))))
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 17.11.2007, 16:17
RSovets вне форума Посмотреть профиль Отправить личное сообщение для RSovets Найти все сообщения от RSovets
  № 9  
Ответить с цитированием
RSovets
[+1.3 13.11.07]

Регистрация: Aug 2007
Сообщений: 19
null
а как исправить?

Старый 17.11.2007, 16:18
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 10  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
блин, выложи оба файла.
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.