![]() |
Как получить значение искомой подстроки в строке?
Есть XML файл, состоящий из одной Длинной строчки
нужно найти в этой строчке упоминание переменной xxx и получить ее значение. Например. кусок строки XML: ... aaa="1" bbb=2 ccc="acb" ... xxx="4" .... вот как то нужно Чему равно xxx |
А wsh совсем не катит?
|
Busla, Катит. Программист уже написал VBSCript.
Хотелось узнать авторитетное мнение, можно ли такое на CMD, а то у самого не получилось. |
Loki3D
findstr |
zonderz, и как это поможет?
|
Loki3D
сорри, не заметил что у вас текст в одной строке... тогда http://www.dostips.com/DtTipsStringManipulation.php http://www.google.ru/search?hl=ru&ne... oq=&gs_rfai= |
zonderz, спасибо за первую ссылку, но к сожалению при попытке использовать пример
set str=the cat in the hat echo.%str% set str=%str:the =% echo.%str% получаю ошибку что слишком большая строка, в SET не говоря уже о том, что пока не представляю, как можно передать строчку из файла в переменную. |
Loki3D
можно делать - точно говорю, не могу сейчас наптсать - давно было - еще в 95том штудируйте по дос команды |
Если бы была уверенность, что xml записан именно так, я бы разбил вход на подстроки используя в качестве разделителя пробел, получились бы подстроки с присвоениями и ненужный мусор. Эти подстроки разбиваем через знак равенства и получаем пары атрибут и значение. Но в общем случае и вокруг знака равно могут быть пробелы, и после значения может не только пробел.
|
Busla, как бы ты разбил?. через FOR ?
там же получается Множество значений, раделенных пробелами. и не всегда можно угадать на какую из букв переменной %%а..%%я будет приходится искомая пара xxx=??. Строка то одна. |
Сложный случай. Во-первых у cmd ограничение длины строки в 4095 по-дефолту (кажется), расширяемое до 16383 (кажется). если Ваш однострочный XML больше, вернее нужная Вам переменная находится дальше границы - то возможно только с привлечением софтин, не входищих в Виндовс по-дефолту.
Далее, сильное влияние на код окажет начало XML-файла, которое просьба здесь процетировать. (не значит, что дословно, все переменные и их значения можете заменить на любые беспалевные для Вас, важна сама структура до начала списка переменных, ну включая первые несколько переменных, чтобы подогнать без ошибок... Но вообще возможно таким образом (ставка сделана на то, что знак "=" не может оказаться в кавычках, а также на то, что значения переменных не могут содержать пробелов, а разрыв между переменными сделан исключительно на пробелах. *видите сколько "условностей"? ;) ) Код:
@echo off |
а можно из этого достать только url (все в строчке)?
Код:
<?xml version='1.0' encoding='UTF-8'?> |
Время: 17:09. |
Время: 17:09.
© OSzone.net 2001-