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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.09.2009, 13:55
1.regulum вне форума Посмотреть профиль Отправить личное сообщение для 1.regulum Найти все сообщения от 1.regulum
  № 1  
Ответить с цитированием
1.regulum

Регистрация: Sep 2009
Сообщений: 8
Question Не получается удалить узел XML

Код AS3:
var прош:XML = 
        <foo>
            <ме id="1">
				<св>2</св>
				<св>3</св>
				<объ id='1'>
					<э>20.7</э>
				</объ>
			</ме>
            <ме id='2'>
                <св>1</св>
            </ме>
            <ме id='3'>
				<I>3</I>
				<св>1</св>
                <объ id='2'>
					<э>10.1</э>
				</объ>
				<объ id='3'>
					<э>9.5</э>
				</объ>
            </ме>
        </foo>;
 
for each (var объ in прош.ме.объ)
{ if (объ.э > 20)
	{
		прош.ме.(attribute("id")=='2').insertChildAfter(null, объ.copy());
		delete прош.ме.(attribute("id")=='1').объ.(attribute("id") ==  объ.@id).* ; // работает
		delete прош.ме.(attribute("id")=='1').объ.(attribute("id") ==  объ.@id).@* ; // работает
		delete прош.ме.(attribute("id")=='1').объ.(attribute("id") ==  объ.@id)  // НЕ РАБОТАЕТ!!! 
// пишет Оператор "delete" с операндом типа XMLList не поддерживается
// а в справке наоборот вроде бы - операнд должен быть XMLList ?
	}
}
что неправильно?
мне надо просто по выполнению условия перенести узел вместе с child- ами в другое место (узел "ме" с другим атрибутом id)

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Скажите, просто из праздного любопытства... вам за этот код платят, или вы это просто развлечения ради?..
Конкретно по теме - вы не можете удалить весь список, можно только узел.
__________________
Hell is the possibility of sanity

Старый 07.09.2009, 17:10
1.regulum вне форума Посмотреть профиль Отправить личное сообщение для 1.regulum Найти все сообщения от 1.regulum
  № 3  
Ответить с цитированием
1.regulum

Регистрация: Sep 2009
Сообщений: 8
Ученики (и руководство) хотят только на Flash, а мне для темы моделирование нужно такое представление-организация данных модели, чтобы "навязчиво-структурированное". Чтобы ученикам структура данных четка бросалась в глаза.
Я учитель в школе, а не ас программирования, мне НАДО это освоить!

Добавлено через 3 минуты
Поэтому не постыжусь еще раз спросить - где я накосячил? Разве в этом случае
Код AS3:
delete прош.ме.(attribute("id")=='1').объ.(attribute("id") ==  объ.@id)
я пытаюсь удалить весь список?


Последний раз редактировалось 1.regulum; 07.09.2009 в 17:16.
Старый 07.09.2009, 17:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
>> Разве в этом случае я пытаюсь удалить весь список?
Да, фильтр оператор X.(Boolean) возвращает XMLList. Иногда этот список может содержать всего 1 узел, тогда его можно сконвертировать в XML. Но это часный случай и delete не умеет такой случай отличать от общего случая.
__________________
Hell is the possibility of sanity

Старый 07.09.2009, 17:39
1.regulum вне форума Посмотреть профиль Отправить личное сообщение для 1.regulum Найти все сообщения от 1.regulum
  № 5  
Ответить с цитированием
1.regulum

Регистрация: Sep 2009
Сообщений: 8
Спасибо, что не погнушались упрямым новичком.
Если не в тягость, как все же избавится от уже не нужного узла? В коде, приблизительно похожем на тот, что выше?

Старый 07.09.2009, 18:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
var xml:XML = 
<foo>
	<me id="1">
		<sv>2</sv>
		<sv>3</sv>
		<obj id="1">
			<e>20.7</e>
		</obj>
	</me>
	<me id="2">
		<sv>1</sv>
	</me>
	<me id="3">
		<I>3</I>
		<sv>1</sv>
		<obj id="2">
			<e>10.1</e>
		</obj>
		<obj id="3">
			<e>9.5</e>
		</obj>
	</me>
</foo>;
 
var targetList:XMLList = xml.me;
var list:XMLList = targetList.obj;
 
for each (var node:XML in list)
{
	if (node.e > 20)
	{
		targetList.(@id == "2").appendChild(node.copy());
		delete targetList.(@id == "1").obj.(@id == node.@id)[0];
	}
}
trace(xml.toXMLString());
Если я правильно понял задачу.
__________________
Hell is the possibility of sanity

Старый 07.09.2009, 21:31
1.regulum вне форума Посмотреть профиль Отправить личное сообщение для 1.regulum Найти все сообщения от 1.regulum
  № 7  
Ответить с цитированием
1.regulum

Регистрация: Sep 2009
Сообщений: 8
Премного благодарен!

Старый 28.11.2009, 18:32
Lexa_ вне форума Посмотреть профиль Отправить личное сообщение для Lexa_ Найти все сообщения от Lexa_
  № 8  
Ответить с цитированием
Lexa_

Регистрация: Mar 2009
Сообщений: 33
To wvxvw, можно было просто сказать, что т.к. фильтр оператор возвращает XMLList, то нужно обратиться к конкретному элементу возвращаемого списка - [0]

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

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

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


 


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


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