Как удалить комментарии из XML-файла?

Существует ли инструмент командной строки, который может удалить комментарии из XML-файла? Или я должен записать небольшую программу, которая использует синтаксический анализатор XML, чтобы сделать это?

Обновление: я не интересуюсь решениями, которые только обрабатывают подмножество всех возможных XML-файлов.

Например, regexp не может обработать парсинг XML.

https://stackoverflow.com/questions/6751105/why-its-not-possible-to-use-regex-to-parse-html-xml-a-formal-explanation-in-la

5
задан 23 May 2017 в 05:39

1 ответ

Я сделал бы это таким образом:

cat myfile.xml | sed '/<!--.*-->/d' | sed '/<!--/,/-->/d' > cleaned.xml

Или:

awk 'in_comment&&/-->/{sub(/([^-]|-[^-])*--+>/,"");in_comment=0}
 in_comment{next}
 {gsub(/<!--+([^-]|-[^-])*--+>/,"");
  in_comment=sub(/<!--+.*/,"");
  print}'

Или:

xmlstarlet ed -d '//comment()' file.xml
12
ответ дан 23 November 2019 в 08:46

Другие вопросы по тегам:

Похожие вопросы: