Просмотр полной версии : XML и поиск Node по имени
kubik_dubik
28.08.2006, 18:18
порылся в хелпе,но не нашел - можно ли найти узел по имени ?То есть при старте работы в мувик загружается XML документ (больше 20 000 узлов) и из родительских узлов строю ListBox а из дочерних TextFields.Затем нужно динамически удалять и содавать TextFields из дочерних узлов в зависимсти от того что выбрано в ListBox , то есть нужно искать такой node в XML файле (который selected в ListBox) и пройтись по его дочерним узлам.Пройтись по дочерним не проблема, а вот как найти тот node который счас выбьран в ListBox , вот это проблема.
Подскажите пути решения. Спасибо.
Бармалей
28.08.2006, 18:21
XML.nodeName <-- стоку выделить мышкой, нажать F1.
kubik_dubik
28.08.2006, 18:27
это свойство .... а если мне надо найти node с именем "Сергеев Владимир Петрович" , а оно может быть и 8456 -м и 17324 - м .... это же сколько времени надо будет на поиск такого ноде(!) .Потому и спрашиваю - есть ли более быстрые способы поиска Node по имени (без последовательного досутпа) , или может кто предложит другие способы решения такой задачи, без XML.
Бармалей
28.08.2006, 18:41
это свойство .... а если мне надо найти node с именем "Сергеев Владимир Петрович" , а оно может быть и 8456 -м и 17324 - м .... это же сколько времени надо будет на поиск такого ноде(!) .Потому и спрашиваю - есть ли более быстрые способы поиска Node по имени (без последовательного досутпа) , или может кто предложит другие способы решения такой задачи, без XML.
<Сергеев Владимир Петрович></Сергеев Владимир Петрович> - ты о таком ноде говоришь? Спецификацией XML подобные художества не поддерживаются.
Если нет, то речь идет о значении узла. Его можно узнать, прочитав свойство nodeValue. В любом случае более быстрого решения, чем тупой перебор значений узлов, нет. Поэтому советую подумать над реструктуризацией XML узлов.
Der Grossen
28.08.2006, 18:51
http://proto.layer51.com/l.aspx?p=6
здесь точно должно быть что-то, что поможет
http://proto.layer51.com/d.aspx?f=194 - вот похоже на правду
Бармалей
28.08.2006, 18:54
http://proto.layer51.com/l.aspx?p=6
здесь точно должно быть что-то, что поможет
С 20000 узлов? Вряд ли.
kubik_dubik
28.08.2006, 18:55
Нет узел имеет имя <name></name>.
Да, наверно придётся делать всё через XMLsocket , т.е. взяли selected строку в ListBox , отправили в сокет, на сервере нашли этот узел и отправили этот Node со всеми чайлдами через сокет обратно в мувик а там уже обработали . ТИак будет быстрее ?
kubik_dubik
28.08.2006, 18:57
http://proto.layer51.com/l.aspx?p=6
здесь точно должно быть что-то, что поможет
http://proto.layer51.com/d.aspx?f=194 - вот похоже на правду
спасибо , но тот же перебор с последовательным доступом ... ничего нового.
А что мешает заюзать idMap?
Бармалей
28.08.2006, 19:17
А что мешает заюзать idMap?
__etc, а об этом хотелось бы услышать поподробней. Что это?
kubik_dubik
28.08.2006, 19:22
и мне интересно что такое idMap...
http://livedocs.macromedia.com/flash/8/main/00002870.html
А вы не знали? Конечно, не по имени нода, но можно просто копировать имя в id
kubik_dubik
29.08.2006, 13:04
idMAp позволяет обратиться к узлу по id, но насколько я понял работает только с 8 проигрывателя , мне нужно в 7 ... будет работать ?
В семёрке не будет.
А почему бы не сделать под восьмёрку?
kubik_dubik
29.08.2006, 13:06
Потому что нет плеера под Linux восьмой версии .... :-(
Ну тогда придёться применять всяческие методы поиска, сделать свой idMap. Только времени на обработку такого XML уйдет просто неприлично много.
Доступ по id работает и в 6 и в 7, только делается чуть по другому.
xmlID = new XML ("<main><t id='a' value='1'/><t id='b' value='2'/><t id='c' value='3'/></main>")
trace (xmlID['a'].attributes.value)
trace (xmlID['b'].attributes.value)
trace (xmlID['c'].attributes.value)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.