PDA

Показать полную графическую версию : Можно ли средствами cmd объединить однотипные XML-файлы в один?


uzlprog
07-06-2016, 15:20
Дано: очень много однотипных файлов xml вида:

<?xml version="1.0" encoding="WINDOWS-1251"?>
-<journal>-<MainTable><id>xxx</id><carnumber>xxx</carnumber><videochan>xxx</videochan><channel_id>3</channel_id><passdate>2016-05-06T00:00:00</passdate><passtime>xxx</passtime><direction>xxx</direction><carimage><description>xxx</description><idArchivePath>xxx</idArchivePath></MainTable>
...
...
</journal>

Нужно в обозримые сроки объединить их в один файл .xml, то есть для этого, нужно поместить содержимое всех файлов между тегами:

<?xml version="1.0" encoding="WINDOWS-1251"?>
-<journal>
...
...
</journal>
А еще, очень бы хотелось возможность удалить из содержимого тег <videochan>xxx</videochan>

Iska
07-06-2016, 19:26
Можно ли средствами cmd »
Средствами WSH/PoSH.

uzlprog
07-06-2016, 21:35
Не подкините пример?

Iska
07-06-2016, 23:54
Не подкините пример? »
Не подкинете пример xml-файлов, до и после?

alpap
09-06-2016, 08:41
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%A in ('dir/a-d/b "*.xml"') do (
<"%%A">$ (for /f "delims=" %%a in ('more') do @set "x=%%a"& set "x=!x:><=>","<!"& for %%b in ("!x!") do @set "y=%%~b"& echo !y!)
<$>>"file.xml" (for /f "delims=" %%a in ('findstr/rv /c:"<journal>" /c:"<videochan>[0-9]*</videochan>" /c:"</journal>"') do @echo %%a)& del $
)
exit/b


Или в строку

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%A in ('dir/a-d/b "*.xml"') do (
<"%%A">$ (for /f "delims=" %%a in ('more') do @set "x=%%a"& set "x=!x:><=>","<!"& for %%b in ("!x!") do @set "y=%%~b"& echo !y!)
<$>>"file.xml" (for /f "delims=" %%a in ('findstr/rv /c:"<journal>" /c:"<videochan>[0-9]*</videochan>" /c:"</journal>"') do @<nul set/p=%%a)& del $
)
exit/b
.




© OSzone.net 2001-2012