Скрипт для замены служебных символов в XML

Описание

xml_healer.py (англ. healer — целитель) — скрипт для массового исправления невалидных XML файлов.

Скрипт выполняет следующие замены:

  • Символ & заменяется на &;
  • Символ < заменяется на '&lt;;
  • Символ > заменяется на &gt;
  • Символы «» заменяются на &quot;

Также скрипт удаляет все, что идет после закрывающего родительского тега <\Файл>.

Системные требования

Для работы скрипта необходимо установить интерпритатор языка программирования Python (https://www.python.org/downloads/) версии 3 или выше.

Авторские права

Скрипт xml_healer.py распространяется на условиях лицензии «Attribution-ShareAlike» («Атрибуция — На тех же условиях») 4.0 Всемирная.

Обратная связь

Автор:Дмитрий Мажарцев
Контакты:uksvlg@yandex.ru
Адрес:Волгоград
Дата:04 июня 2015 года

Порядок работы

  1. Поместить скрипт xml_healer.py в папку с XML файлами отчетов;
  2. Запустить скрипт двойным нажатием и дождаться завершения его работы;
  3. Ещё раз прогнать исправленный XML файл через Tester.

После завершения обработки файлов в командной строке будет выведена информация о результате обработки и сообщение «Нажмите Enter». Обработанные файлы будут находиться в папке out. Оригинальные файлы останутся нетронутыми в текущей директории.

Выводимая информация

В ходе выполнения скрипта выводится несколько типов сообщений:

Имя файла: NO_NDS.9_0000_0000_00000000000000000000_20150427_80c4e37b-a160-4b2f-827c-69226f792dfd.xml
Исцелен!

Сообщение Исцелен! означает, что файл успешно обработан и его исправленная копия находится в папке out.

Имя файла: ФАЙЛ.odt
Не является XML-файлом

Сообщение Не является XML-файлом означает, что файл не является файлом отчета. xml_healer.py сканирует все файлы в папке, в которой находится и обрабатывает только те файлы, в конце которых стоит расширение .xml.

Имя файла: file.xml
Файл имеет кодировку отличную от windows-1251

Сообщение появляется, если XML файл имеет кодировку отличную от windows-1251. Возможно, данный XML файл не является файлом отчета, так как файлы отчетов должны иметь кодировку windows-1251.

Рекомендации

После работы скрипта рекомендуется прогнать XML файлы через Tester. При проверке невалидного XML файла Tester, натыкаясь на первый же некорректный символ, прекращает проверку. xml_healer.py исправляет все некорректные символы и Tester может осуществить полную проверку файла, в ходе которой могут обнаружиться ошибки уже не в структуре файла, а в самом содержимом.


Проверка изменений в файлах

Чтобы проверить и сравнить изменения в XML файлах, необходимо воспользоваться программой WinMerge.

WinMerge — программа для сравнения текстовых файлов

Слева — исходный файл. Справа — файл после обработки скриптом xml_healer.py


Приложение

Процесс работы скрипта xml_healer.py со скриншотами:

Шаг 0 — Прогон файла через Tester

Шаг 0 — Прогон файла через Tester

Шаг 1 — Поместить скрипт с файлами для обработки

Шаг 1 — Поместить скрипт с файлами для обработки и дойным нажатием запустить скрипт.

Шаг 2 — Во время работы скрипта откроется окно командной строки, в котором будет выведен результат обработки файлов.

Шаг 2 — Во время работы скрипта откроется окно командной строки, в котором будет выведен результат обработки файлов.

Шаг 3 — Обработанные файлы будут находиться в папке out

Шаг 3 — Обработанные файлы будут находиться в папке out.

Шаг 4 — Повторный прогон исправленного файла через Tester