Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   XML - удаление узлов по имени (http://www.flasher.ru/forum/showthread.php?t=105039)

Роман Вадимович 06.12.2007 15:36

XML - удаление узлов по имени
 
Добрый день.
Хочу задать простой вопрос.
У меня есть такой XML:
Код:

<objects>
  <object name="obj1">Это первый объект</object>
  <object name="obj2">Это второй объект</object>
  <object name="obj3">Это третий объект</object>
</objects>

Вопрос! Я хочу удалить второй объект. Возможно ли удалить его сославшись на его имя?

Примечание. Я знаю только способ перебора объектов в цикле.
Перебирая элементы я могу сравнивать атрибут name с тем, который мне нужен. И если это он - удалить при помощи функции deleteNode(), но как мне кажется это тупо.

amesqit 06.12.2007 16:16

Простите, а чем Вам не нравится перебор? "name", это лишь атрибут, ничего тупого в переборе тут нет.
P.S.: для удаления узла используется функция removeNode()

Роман Вадимович 06.12.2007 16:23

Да, прошу прощения я ошибся в названии фунции removeNode().
К примеру объектов имеется 1000.
Получается, что мне нужно перебрать всю тысячу, чтобы удалить нужный элемент.
Найти узел по индексу я могу:
xml_objects.firstChild.childNodes[номер узла].

amesqit 06.12.2007 16:36

Вы боитесь, что перебор тысячи узлов займет у вас длительное время? В любом случае тут без перебора не обойтись, а если вы уверены, что не может быть 2-х атрибутов с одинаковыми полями "name", то ничто не сможет вам помешать при обнаружении узла прервать цикл.

Fernando Costa 06.12.2007 17:11

Роман Вадимович, а может стоит глянуть на АС3, там класс XML могет делать такие весчи

iNils 06.12.2007 18:52

Если имя всегда уникальное, то может стоит называть не name, а id и тогда через idMap получать доступ по id?

Роман Вадимович 07.12.2007 00:08

Цитата:

Сообщение от iNils
Если имя всегда уникальное, то может стоит называть не name, а id и тогда через idMap получать доступ по id?

Супер. То что нужно. Спасибо :)


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

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