Показать сообщение отдельно
Старый 07.11.2008, 17:32
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 1  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Post Алгоритм поиска подстроки в XML

Здравствуйте, подскажите пожалуйста, функцию, которая получает некую строку и искала бы совпадения по всем элементам существующего XML, а потом возвращала бы массив путей(массивов) в виде индексов узлов XML дерева до элементов с совпадением %)
Код:
public function searchStringInXML(string:String):Array
{
    ???
}
Например, в такой XML:
Код:
var someXML:XML = <xml>
                            <someNode>
                                     <node1 value1="первый узел" value2="первый подузел"/>
                                     <node2 value1="первый узел" value2="второй подузел"/>
                            </someNode>

                            <someNode>
                                      <node1 value1="первый узел" value2="первый подузел"/>
                                      <node2 value1="второй узел" value2="второй подузел"/>
                                      <node3 value1="санузел" value2="второй санузел"/>
                            </someNode>
                  </xml>
Делаем
trace(searchStringInXML("второй").toString());
Output: [0, 1], [1, 1], [1, 1], [1, 2]

Получили массив путей до узлов, в аттрибутах которых встречается слово "второй". [0, 1] - первый узел, второй подузел... и т.д.

Пробовал через вложенные 2 цикла for писать с временной xml, потом вконец запутался. Помогите, пожалуйста