|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|
|||||
Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
|
Фильтрация в XML - какая же там область видимости?
Здравствуйте уважаемые.
Вопрос чисто теоретический. Допустим у меня стоит задача выбрать узлы для обработки. При этом ранг для фильтра хранится в переменной. Мне пришло в голову а что будет если с таким же именем тег окажется в списке потомков узла. Пробуем. делаем фильтр. Попробовал подставить в условие значение переменной как при формировании XML через фигурные скобки компилятор ругается. Убираю скобку работает. При чем выбирает два элемента. Например если переменная id == "6" выбирается второй элемент и последний. Это что же выходит, что область видимости перебирает все возможные варианты прежде чем дать ответ? Как четко добиться однозначности откуда брать данные для сравнения?
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ |
|
|||||
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Честно говоря вы как-то сумбурно все описали. Немного не понятно что вы надеялись получить.
__________________
#flasher@irc.trg.ru:6667 |
|
|||||
Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
|
у меня стоит задача удалить из файла xml все тэги имеющие определенный признак со значением указанным в переменной. Вот так первый удаляю например
но у меня нет уверенности что у одного из элементов <b> не окажется вложенных <id>, а это может повлиять на результат работы. Файл грузится извне и может быть всякое. Я же написал вопрос больше теоретический. Работать будет (с оговорками для тех кто скрипты для формирования xml пишет). Мне любопытно как получить однозначность. Внутри метода this.id написал и получил свойство класса и уверен что никакая локальная переменная id нигде не возникнет. А вот здесь получается так не пропишешь. E4X сам решает что выбирать.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ |
|
|||||
Modus ponens
|
var id:String = "6"; var xml:XML = <a> <b id="7"/> <b id="6"> 4 </b> <b id="3"> тест <id>3</id> </b> </a>; trace(xml.b.(@id == this.id).toXMLString()); Если нужно однозначно указать на контекст фильтруемого узла -
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 15.07.2009 в 15:33. |
|
|||||
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Бывает, как в данном случае, что выполняемый код имеет одновременно несколько контекстов, в которых ищется поле с заданным именем. Указывай контекст, и всё будет хорошо.
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
|
а ежели id есть в классе и локально в методе?)
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ |
|
|||||
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Дежа вю, ггг.
Добавлено через 1 минуту В этом случае помогает ёмкость с водой, в каковую следует макать головой разработчика.
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
|
а для указания что это с элементов пишем elements();
Чтож ваша мысля понятна. Ничего когда нибудь и я столько прогеров съем что буду жутко вумный и вы не будете надо мной потешаться
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ |
|
|||||
Modus ponens
|
var id:String = "6"; var xml:XML = <a> <b id="7"/> <b id="6"> 4 </b> <b id="3"> тест <id>3</id> </b> </a>; function f(xl:XML):void { var id:String = "7"; trace(xml.b.(@id == id && (id is String)).toXMLString()); // <b id="7"/> trace(xml.b.(@id == this.id && (this.id !== id)).toXMLString()); // <b id="6">4</b> trace(xml.b.(@id == valueOf().id).toXMLString()); // <b id="3"> // тест // <id>3</id> // </b> } f(xml);
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 15.07.2009 в 15:46. |
Часовой пояс GMT +4, время: 03:31. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|