![]() |
поиск по xml
суть:
есть xml файлы, надо вытащить информацию из определенного тега как делаю: Код:
set File_name=file.xml Возможно предложите более элегантное решение :) |
Может поможет делал на powershell http://forum.oszone.net/thread-257380.html
Код:
[xml]$text = Get-Content "D:\base64\obr.xml" |
Цитата:
|
Я делал скрипт на bat для обработки xml но не для выборки данных между тегами а для замены тегов отрабатывает 6 часов файл размером всего 5 мб. Сделал на vbs отработал за 1 секунду, на powershell уже делал изъятие данных между тегов отрабатывает за 3 сек. Так что смотрите может на vbs сделаете или помогут в разделе VBS.
А может есть компилятор типа powershell to exe ?! Сам не искал для Powershell, но для php такой есть. |
Цитата:
|
Цитата:
|
Powershell в XP устанавливается в качестве обновления Windows.
|
firstarey, так что-ли:
Код:
For /F "tokens=2-4 Delims=<>:" %%a In ('find "<CadastralNumber>" ^<"file.xml"') Do echo %%a,%%b,%%c |
Цитата:
Код:
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 ( |
firstarey, приложенный Вами код не работает вообще.
Так? Код:
@echo off |
|
суть:
последний кусок кода, комментарием выделена строка (83) переменная не желает принимать значение которое ей хочу присвоить (видно по выводу echo) при этом отдельно данный кусок кода прекрасно себя чувствует. подозрения падают на %K_ucastok% что тут может быть не так ? голову сломал сам скрипт целиком: отдельно проблемный кусок, работает без проблем: весь набор прилагаю во вложении |
Новое значение, присвоенное переменной под скобками, циклом или конкатенацией команд (&), можно получить из нее, не выходя из этой же конструкции, раскрывая только через восклицательные знаки:
Код:
set new_file_name=value Код:
Setlocal EnableDelayedExpansion Код:
cmd /v:on /c batnik.bat |
Очередная заминка:
не все *.XML файлы отформатированы с переносом строки, т.е. попадаются файлы где нет переноса на след строку после закрытия тега, например фрагмент: Код:
<Location><Code_OKATO>57401380000</Code_OKATO></Location><Parcels><Parcel CadastralNumber="59:01:4410923:25" Name="01" State="01" DateCreated="2006-09-13"><Areas><Area><AreaCode>009</AreaCode> соответственно Цитата:
через Notepad++ делается просто, но хочется автоматизировать процесс. сейчас поиск номера (59:01:4410923:25) выполняется следующим образом: Возможно ли как то через cmd реализовать замену "><" на ">перенос строки<" (>/n< в Notepad++)? Ну или другой вариант? возможно изменить алгоритм поиска ? второй вопрос: как бы имя обрабатываемого файла проще получать ? так чтоб перетаскиваешь xml на батник и батник в итоге получает имя xml файла в переменную |
Цитата:
Код:
@echo off |
Время: 17:08. |
Время: 17:08.
© OSzone.net 2001-