Como remover comentários de um arquivo XML?

5

Existe uma ferramenta de linha de comando que pode remover comentários de um arquivo XML? Ou eu preciso escrever um pequeno programa que faz uso de um analisador XML para fazer isso?

Atualização : não estou interessado em soluções que só lidam com um subconjunto de todos os arquivos XML possíveis.

Por exemplo, um regexp não pode manipular a análise XML.

link

    
por Erik Sjölund 19.09.2014 / 12:43

1 resposta

10

Eu faria assim:

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

Ou:

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

Ou:

xmlstarlet ed -d '//comment()' file.xml
    
por Frantique 19.09.2014 / 12:47