21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
|||||||||||
1 | |||||||||||
Можно ли средствами cmd объединить однотипные XML-файлы в один?07.06.2016, 16:17. Показов 4095. Ответов 15
Метки нет (Все метки)
Дано: очень много однотипных файлов xml вида:
Вылетел из сети... продолжу. Короче, нужно как-то вырезать из каждого файла теги заголовка и конца и содержимое поместить в один файл. А еще, очень бы хотелось возможность удалить из содержимого тег <videochan>xxx</videochan> Добавлено через 3 часа 21 минуту Возвращаюсь к теме. Кое-что уже сам сделал: создал пустой файл, добавил туда шапку xml, теперь задача составить цикл копирования содержимого каждого файла без этой шапки. Как я понимаю можно попытаться прочесть каждый файл без нескольких начальных символов и конечны? Или же можно вырезать ненужное по маске?
0
|
07.06.2016, 16:17 | |
Ответы с готовыми решениями:
15
Можно ли средствами CMD создавать файлы MS Office? Объединить файлы xml в один и распарсить итог в таблицу Как объединить Word .doc файлы средствами .NET Можно ли реализовать функции COMDisable средствами cmd? |
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|
07.06.2016, 17:07 | 2 |
Писанины много, но я чего-то так и не понял что надо. Лучше давайте так. Дайте пример, есть вот это..., а надо сделать вот это и так 333 раза.
0
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
||||||
07.06.2016, 17:44 [ТС] | 3 | |||||
Есть 2000 файлов формате .xml c одинаковой структурой, по типу:
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|
07.06.2016, 19:41 | 4 |
"videochan", нигде больше не повторится или "<videochan>xxx</videochan>" стоит на одном и том же месте в строках или по разному, структура точно не меняется, можно просто сносить везде первых 2 и последнюю строку, удалять из внутренностей <videochan>xxx</videochan> и мешать в кучу в файл?
0
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
||||||
07.06.2016, 19:55 [ТС] | 5 | |||||
Структура файла везде одинаковая. "<videochan>xxx</videochan>" стоит на одном и том же месте в строках
0
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
|
07.06.2016, 20:05 [ТС] | 6 |
Вот пример файла
0
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
|||||||||||
08.06.2016, 11:48 [ТС] | 7 | ||||||||||
Сейчас подумал в иную сторону: разпарсить эту кучу файлов в таблицу по требуемым тегам... к примеру при помощи PowerShell
Но реализация на CMD очень любопытна)) Добавлено через 14 часов 12 минут Задача с моим примером файла .xml как я понял фактически не реализуема на голом CMD, хотя теоретически, наверное, можно... Самый простой вариант - привести файл в построчный вид, а уже потом легко его резать по строкам. Можно было бы добавить перед каждым '<' и '>' символ перехода строки... Только вот не помню чем чревато для xml запись вида:
p.S.: возможно помучаю сегодня командную строку)))
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|||||||||||
08.06.2016, 14:14 | 8 | ||||||||||
Добавлено через 2 минуты Правда так и оставил строки массивом, но можно и в одну назад как было изначально, хотя на мое мнение так читабельнее. Добавлено через 57 минут Вот так в одну строку как в "Пример.xml":
Добавлено через 43 секунды Код чуть поменял, так лучше.
0
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
|
08.06.2016, 16:58 [ТС] | 9 |
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
09.06.2016, 08:37 | 10 | |||||
любое количество любых цифр в том месте.
Добавлено через 8 часов 26 минут В строке 4 Заменить на
1
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
|
09.06.2016, 10:33 [ТС] | 11 |
alpap, спасибо. Ошибочку я увидел, но вот с маской пока не разобрался. Во-первых, в этом теге (оффтоп: как же это правильно зовется в .xml?) хранится текст в кириллице, во-вторых, что-то не получается состряпать маску. А еще вопрос: как удалить несколько тегов? Я если честной не совсем вкурил 5 строку... в месте исполняемого действия...
Добавлено через 37 минут alpap, по тестировал предложенный код: первый работает, а вот от второго результата не дождался. Так и не понял, что ему для счастья нужно? Но, если подсунуть скрипту файл xml с объемным текстом в тегах (есть файл где символов на 4 Mb) то, понятное дело, конвертируется только часть, ибо ограничение объема переменных среды... А если попробовать с файлом tmp и писать частями... P.S.: понятное дело решение задачи на CMD - утопия, но если интересно...
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
09.06.2016, 10:42 | 12 | |||||
Маску можете шире поставить
А принцип работы моего кода таков Переводим одну строку в массив строк, это в 4й строке, попутно за счет пробелов в новой первой строке она сама удаляется, а остальные ненужные указываются в findstr/v и не выводятся, соответственно не пишутся в файл. Добавлено через 2 минуты Вот только для интереса и сделал, это действительно не для cmd.
0
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
|
09.06.2016, 10:48 [ТС] | 13 |
Спасибо. А удаление нескольких тегов одновременно?
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|
09.06.2016, 11:04 | 14 |
Не понял юмора, у меня, если присмотритесь, удаляется 3 тега одновременно, ставьте хоть 33.
0
|
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
|
|
09.06.2016, 11:16 [ТС] | 15 |
Все разобрался.
0
|
09.06.2016, 23:23 | 16 |
...Согласно пункту 1.5. правил batch раздела предлагается
утилита собственной разработки для объединения XML файлов с возможностью удаления тегов, в виду, далее цитата, "целесообразности (затраты времени / надежность кода/..." - нужное подчеркнуть. Использование: Код
xmljoin --source=c:\test --dest=c:\test\new --name=new.xml xmljoin -s=c:\test -d=c:\test\new # c удалением одного или более тегов xmljoin -d=new -t=deleted,deleted1,deleted2 -r=main -v # с указанием XML декларации для шапки и имени корневого тега xmljoin -d=new -r=main -x="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" xmljoin.rar Ссылка на исходник.
4
|
09.06.2016, 23:23 | |
09.06.2016, 23:23 | |
Помогаю со студенческими работами здесь
16
Объединить txt файлы в один Объединить файлы приложения в один Как объединить все файлы в один код? Как объединить все дополнительные файлы в один Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |