(см. решение ниже)
У меня есть XML-файлы, которые я анализирую с помощью скрипта Python (я не писал его, но он отлично справляется с работой). Проблема заключается в том, что файл XML имеет большой размер (~ 1 ГБ), и анализ занимает много времени из-за перегрузки памяти. Файл XML полон бесполезной информации в определенных элементах - как лучше всего от них избавиться? Я пробовал xmlstarlet, но он слишком "ориентирован на XML", т.е. это занимает целую вечность по тем же причинам, что и скрипт Python.
Что мне просто нужно сделать, так это тупо избавиться от данных элементов: удалить все между <mytag>
и </mytag>
по всему файлу (есть несколько <mytag>...</mytag>
, все быть удаленным).
Я был бы очень признателен за ваши идеи, так как я уверен, что есть хорошие способы сделать это, не изобретая велосипед.
Спасибо!
РЕДАКТИРОВАТЬ: я, наконец, закончил с
perl -pe "undef $/;s/<mytag>.*?<\/mytag>//msg" < inputfile.xml > outputfile.xml
который я не понял, @Vlad опубликовал также.