помогите позязя извлечь данные из xml при помощи регулярных выражений.
вот такая строка
xml="<iq id='ask_version' type='get' to='spoofing@spfng.com/spoofing_home' from='spfng.com'><query xmlns='jabber:iq:version'/></iq>"
делаем
expr match "$xml" '.*[^<]*\(<[[:space:]]*[qQ][uU][eE][rR][yY][[:space:]]*\([^>]\)*>\).*'
получили тэг query
а теперь надобно получить содержимое аттрибута xmlns, ну и не только.
проблема в том, что expr match смотрит как-то на всю строку, а не ищет первое совпадение. тобишь для него attr='(.*)' это не какое-то там значение внутри аттрибута, а вся строка от ' и до '.
ощщем, никак не могу с ним совладать :( подскажите, как при помощи expr match извлечь содержимое аттрибутов из html/xml тегов, просто первый аттрибут по маске, у меня ничерта не получается.
expr match "$xml" '.*\(.*[tT][oO]=\([^'\'']*\)*'\''*\).*'
http://i.imgur.com/eOytXou.png — скриншот для затравки, почти работает, осталось научиться выдергивать параметры из XML тега и запилить ответы на ping и версию клиента, который запрашивает жаббер сервер яндыкса. и уже тогда заниматься делами насущными, прикручивая к боту любой функционал.
выложу на паблик, как доделаю минимально необходимое к клиенту.