Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] поиск по xml

Ответить
Настройки темы
CMD/BAT - [решено] поиск по xml

Пользователь


Сообщения: 102
Благодарности: 8

Профиль | Отправить PM | Цитировать


Изменения
Автор: firstarey
Дата: 06-03-2014
суть:
есть xml файлы, надо вытащить информацию из определенного тега

как делаю:

Код: Выделить весь код
set File_name=file.xml
rem как бы имя проще получать ? так чтоб перетаскиваешь xml на
rem батник и батник в итоге получает имя xml файла
rem это что то типа:
rem set File_name=%1

findstr "<CadastralNumber>" %File_name% >1.txt
rem находим по тегу кадастровый номер

For /F "tokens=1,2* Delims=<CadastralNumber>" %%a In (1.txt) Do (echo %%a >>KADNumber.txt)
rem обрезаем тег <CadastralNumber>

Вопрос:
как оставить только 1 строку ? т.к. последние 2 явно подрезаны и не актуальны

For /F "tokens=1,2,3,4* Delims=:" %%a In (KADNumber.txt) Do (
echo K_Region = %%a	регион >>out.txt
echo K_Raion = %%b	район >>out.txt
echo K_kvartal = %%c	квартал >>out.txt
if %%d NEQ "" (echo K_uchastok = %%d	участок >>out.txt) 
)
rem приводим к удобному виду
Проблема указана в вопросе, собсно надо как то оставить лишь первый результат или удалить остальные строки, кроме первой
Возможно предложите более элегантное решение

Отправлено: 09:14, 01-04-2013

 

Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Может поможет делал на powershell http://forum.oszone.net/thread-257380.html

Код: Выделить весь код
[xml]$text = Get-Content "D:\base64\obr.xml"
$text.CLIENTS.client | Foreach { 
$a=" <div align=""center""> "
$b="</div>"
$a
"<br>"+$_.LASTNAME
"<br>"+$_.FIRSTNAME
"<br>"+$_.MIDNAME+"<br>"
"<img src=""data:image/png;base64,"+$_.portrait+""" />"+
"<img src=""data:image/png;base64,"+$_.signature+""" />"
"<br>"
"----------------------------------------"
$b


} |Out-File D:\base64\result.html  -encoding  Default

Отправлено: 11:16, 01-04-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 102
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата dark-------13:
Может поможет делал на powershell »
powershell использовать нет возможности т.к. на рабочих компах win xp, а местные админы не желают ставить компоненту powershell

Отправлено: 11:30, 01-04-2013 | #3


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Я делал скрипт на bat для обработки xml но не для выборки данных между тегами а для замены тегов отрабатывает 6 часов файл размером всего 5 мб. Сделал на vbs отработал за 1 секунду, на powershell уже делал изъятие данных между тегов отрабатывает за 3 сек. Так что смотрите может на vbs сделаете или помогут в разделе VBS.
А может есть компилятор типа powershell to exe ?! Сам не искал для Powershell, но для php такой есть.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:47, 01-04-2013 | #4


Пользователь


Сообщения: 102
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата dark-------13:
может на vbs сделаете или помогут в разделе VBS »
VBS к сожалению не владею.. так что даже если и помогут, то только в виде готового решения и я весьма скромно смогу отредактировать.

Отправлено: 13:08, 01-04-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата firstarey:
powershell использовать нет возможности т.к. на рабочих компах win xp, а местные админы не желают ставить компоненту powershell »
Бейте их больно. Пусть ставят.

Отправлено: 14:02, 01-04-2013 | #6


(*.*)


Сообщения: 36557
Благодарности: 6694

Профиль | Сайт | Отправить PM | Цитировать


Powershell в XP устанавливается в качестве обновления Windows.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 14:15, 01-04-2013 | #7


Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить PM | Цитировать


firstarey, так что-ли:
Код: Выделить весь код
For /F "tokens=2-4 Delims=<>:" %%a In ('find "<CadastralNumber>" ^<"file.xml"') Do echo %%a,%%b,%%c

-------
Alex Dragokas

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:22, 01-04-2013 | #8


Пользователь


Сообщения: 102
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата Diskretor:
так что-ли: »
да, спасибо, только в моем случае:
Код: Выделить весь код
For /F "tokens=2-5 Delims=<>:" %%a In ('find "<CadastralNumber>" ^<"file.xml"') Do For /F "tokens=2-5 Delims=<>:" %%a In ('find "<CadastralNumber>" ^<"file.xml"') Do (
set K_Region=%%a
set K_Raion=%%b
set K_kvartal=%%c
if %%d=="" (set KPT=1) else set K_uchastok=%%d
)
echo %%a:%%b:%%c:%%d
и вот с последней (%%d) переменной проблема - в нее записывается последнее (не полное) значение (3 вместо 38 в данном примере)

Отправлено: 15:41, 01-04-2013 | #9


Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить PM | Цитировать


firstarey, приложенный Вами код не работает вообще.

Так?
Код: Выделить весь код
@echo off
For /F "tokens=2-5 Delims=<>:" %%a In ('find "<CadastralNumber>" ^<"file.xml"') Do (
  set K_Region=%%a
  set K_Raion=%%b
  set K_kvartal=%%c
  set K_uchastok=%%d
  goto :_ext
)
:_ext
echo %K_Region%:%K_Raion%:%K_kvartal%:%K_uchastok%
pause
Не нужно ничего усложнять.

-------
Alex Dragokas


Последний раз редактировалось Dragokas, 01-04-2013 в 16:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:00, 01-04-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] поиск по xml

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск и замена фразы <signature> на sign в xml или txt dark-------13 Скриптовые языки администрирования Windows 2 18-03-2013 11:21
[решено] Поиск <строки> в XML semiono AutoIt 28 17-11-2010 19:53
[решено] проверка XML-файла на соответствие XML schema в IE 6 и Firefox 2 dimait Вебмастеру 4 23-08-2007 02:02
Поиск в яндекс.xml (выделено из "Зацените сайт!") Vampire Вебмастеру 21 11-09-2006 20:31
Решено | XML. DOM. Поиск дочерних элементов. penykov Программирование и базы данных 3 27-04-2006 15:46




 
Переход