![]() |
|
||||||||||
|
|
|
|||||
|
Реализовал следующее
var myxml:XML = new XML(); myxml.ignoreWhite = true; var myxml_p:XML = new XML(); myxml_p.ignoreWhite = true; var myxml_t:XML = new XML(); myxml_t.ignoreWhite = true; myxml.load('image/abc.xml'); poisk.input_txt.onChanged = function() { res = false; str = poisk.input_txt.text; if (str != '') { myxml_p.firstChild.removeNode(); var node:XMLNode = myxml_p.createElement("node"); myxml_p.appendChild(node); for (var i = 0; i<myxml_t.firstChild.childNodes.length; i++) { if (myxml_t.firstChild.childNodes[i].hasChildNodes) { for (var j = 0; j<myxml_t.firstChild.childNodes[i].childNodes.length; j++) { if (str.toLowerCase() == substring(myxml_t.firstChild.childNodes[i].childNodes[j].attributes.label, 0, str.length).toLowerCase()) { myxml_p.firstChild.appendChild(myxml_t.firstChild.childNodes[i].childNodes[j].cloneNode(false)); res = true; } } } } } else { mytree.dataProvider = myxml_t.firstChild; } if (res) { mytree.dataProvider = myxml_p.firstChild; } }; myxml.onLoad = function() { mytree.dataProvider = myxml.firstChild; myxml_t = myxml; }; mytree.setStyle("fontSize",14); mytree.setStyle("backgroundColor",0xAFC6CF); mytree.setStyle("color",0x510066); mytree.setStyle("fontFamily","Microsoft Sans Serif"); var treeListener:Object = new Object(); treeListener.change = function(evt_obj:Object) { var node = mytree.selectedItem; mytree.setIsOpen(node, !mytree.getIsOpen(node), true); if (node.attributes.url) { attachMovie("anons","anons",998); anons._x = 503; anons._y = 156; anons.mc.loadMovie(node.attributes.url); }}; mytree.addEventListener("change", treeListener); С голым кодом, возможно, будет разобраться сложнее, поэтому исходник прилагаю. Не получается следующее. Необходимо что бы поиск реализовывался не только по названию предприятия/организации, но и по тем товарам, которые оно производит. Понятно, что структура XML должна содержать в себе, что-то вроде меток для каждой организации тапа этого: Но по меткам не получается гулять ибо как распознать что после запятой идет другое значение. Может это можно как-то иначе реализовать? Или придется делать что-то типа того? Последний раз редактировалось KiL33; 25.12.2008 в 21:10. |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
а если indexOf() искать,он вроде должен и через запятую найти
__________________
Я просто добрый шутник. |
|
|||||
|
На примере можешь показать?
Что значит раздербанить?!))) |
|
|||||
|
Регистрация: Jun 2008
Сообщений: 28
|
Последний раз редактировалось user123; 25.12.2008 в 12:03. |
|
|||||
|
Регистрация: Jun 2008
Сообщений: 28
|
дык а что тебе мешает раздербанить строку?
|
|
|||||
|
Что-то не понял я, как применить split(","). Отдельно цикл писать.
|
|
|||||
|
Заменяем условие и цыкл.
в поиск вписываеи "шары" или "Хлопушки" ![]() ... if (str != '' && str.length > 3) { myxml_p.firstChild.removeNode(); var node:XMLNode = myxml_p.createElement("node"); myxml_p.appendChild(node); var node_t = myxml_t.firstChild.firstChild; while( node_t ){ if( node_t.hasChildNodes ){ var sub_node_t = node_t.firstChild; while( sub_node_t ){ if ( sub_node_t.attributes.meta != undefined && sub_node_t.attributes.meta.toLowerCase().indexOf( str.toLowerCase() ) != -1 ){ myxml_p.firstChild.appendChild( sub_node_t.cloneNode(false) ); res = true; } sub_node_t = sub_node_t.nextSibling; } } node_t = node_t.nextSibling; } ... |
|
|||||
|
Mnilionic, благодарю!
Это настоящий новогодний подарок! ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|