Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 5

Удаление слова из XML-файла

21.08.2013, 14:42. Показов 3328. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый!

Есть следующая задача - сделать батник для удаления определенного слова из файла (xml). Т.е. *.xml файлы с разными названиями периодически появляются в папке, нужно удалить из файла слово с пробелом на конце (допустим "test " - без кавычек естественно).

Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.08.2013, 14:42
Ответы с готовыми решениями:

Удаление элемента из xml файла
примерный вид xml файла <Human> <Surname>фффф</Surname> <Name>ииии</Name> <Patronymic>сссс</Patronymic> ...

Удаление параметра из xml файла
привет всем, написал простенькую программу для удаления любого параметра из хмл файла, но есть проблема. эта программа работает только с 1...

Удаление элемента из XML файла
Здравствуйте, продолжаю свои шаги в изучении XML На этот раз задача такая: <?xml version="1.0"...

10
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.08.2013, 17:46
Antiquetoy, приведите пример XML файла.
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 5
22.08.2013, 11:00  [ТС]
К сожалению xml в форум не вставить, запаковал..

Удалить собственно нужно PaytKind="1" вместе с пробелом.
Вложения
Тип файла: rar 001.rar (304 байт, 13 просмотров)
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
22.08.2013, 11:49
только для конкретного файла
Bash
1
2
3
4
5
6
7
8
9
10
@echo off
setlocal enabledelayedexpansion
 
 
for /f "tokens=1* delims=]" %%a in ('find /v /n "" ^<"001.XML"') do (
set line=%%b
if "!line!"=="               PaytKind="1" Sum="100"" set "line=               Sum="100""
>>new_001.XML echo.!line!
)
pause
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 5
22.08.2013, 12:15  [ТС]
Спасибо, попробую с этим что нибудь придумать..

Но тут задача посложнее: во-первых названия изначальных файлов постоянно меняются, во-вторых значение "Sum=" тоже всегда разное. И на выходе название файла должно оставаться прежним.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
22.08.2013, 13:43
Цитата Сообщение от Antiquetoy Посмотреть сообщение
значение "Sum=" тоже всегда разное
какую роль в файле играет [Sum=] ?
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 5
22.08.2013, 15:04  [ТС]
Sum это сумма платежа.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.08.2013, 16:04
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@echo off
setlocal enabledelayedexpansion enableextensions
 
::Введите полный путь к текстовому файлу
set file=001.XML
::Введите часть имени удаляемого фрагмента
set exclude=PaytKind
::Введите имя файла результата
set file_ret=001_new.XML
 
::Вычисляем номер строки перед искомой, записываем строку после пробела
for /f "tokens=1,3 delims=[] " %%a in ('find /n "%exclude%" ^<"%file%"') do set nTO=%%a& set str2=%%b
set /A nBefore=nTo-1
 
::Созданием маску для фильтрации строк от 1 до nBefore.
For /L %%C in (1, 1, %nBefore%) do set "txtmask=!txtmask!\[%%C\] "
 
::Нумеруем строки, применяем маску фильтрации, отрабрасываем нумерацию циклом
(for /f "delims=] tokens=1*" %%a in ('find /v /n "" ^<"%file%" ^| findstr /B "%txtmask%" 2^>nul') do (
  Echo.%%b
)) > "%file_ret%"
 
echo                %str2%>> "%file_ret%"
 
more +%nTo% < "%file%" >> "%file_ret%"
pause
1
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
22.08.2013, 16:49
Dragokas,
иной вариант
Bash
1
2
3
4
5
6
7
8
9
@echo off
setlocal enabledelayedexpansion
 
for /f "tokens=1* delims=]" %%a in ('find /v /n "" ^<"001.XML"') do (
for /f "tokens=1,2 delims= " %%c in ("%%b") do (
set "line=%%c"
if /i !line!==PaytKind="1" (echo.               %%d>>new.txt) else (echo.%%b>>new.txt)
))
pause
1
22.08.2013, 17:14

Не по теме:

sov44, та норм :)
Половина кода - комменты и объявления.

0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 5
23.08.2013, 09:40  [ТС]
Всем спасибо!

Вопрос - возможно ли сделать начальным файлом любой xml находящийся в папке, а не четко заданный 001.xml?
Насколько я понимаю можно через if isfile ....?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.08.2013, 09:40
Помогаю со студенческими работами здесь

Удаление узлов из XML-файла
Всем привет, есть xml файл например этот: - &lt;Configuation&gt; - &lt;Inputs&gt; - &lt;Input&gt; &lt;Name&gt;Input_1&lt;/Name&gt; ...

Удаление повторяющихся элементов из xml файла
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;head&gt; &lt;element id=&quot;0&quot;&gt; &lt;name&gt;1&lt;/name&gt; &lt;/element&gt; &lt;element id=&quot;0&quot;&gt; ...

Удаление слова из файла
Здравствуйте, уважаемые форумчане! Проверьте пожалуйста программу на ошибки (так как она не выполняет свой главной задачи - не удаляет...

Удаление определённого слова из текстового файла
Добрый день. Помогите пожалуйста, в 2.txt удалить определенное слово: TR aboutkoi, оставить все, что после него. Может его необходимо...

Удаление текста до первого вхождения слова из текстового файла
Добрый день! Необходима помощь в доработке кода на VB. Удаление текста до первого вхождения слова &quot;Привет&quot; из текстового...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru