如何从 XML 文件中删除注释?

Eri*_*und 6 command-line xml

是否有可以从 XML 文件中删除注释的命令行工具?或者我是否需要编写一个使用 XML 解析器来执行此操作的小程序?

更新:我对只处理所有可能的 XML 文件的一个子集的解决方案不感兴趣。

例如,正则表达式不能处理 XML 解析。

/sf/ask/472577381/

Fra*_*que 14

我会这样做:

cat myfile.xml | sed '/<!--.*-->/d' | sed '/<!--/,/-->/d' > cleaned.xml
Run Code Online (Sandbox Code Playgroud)

或者:

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

或者:

xmlstarlet ed -d '//comment()' file.xml
Run Code Online (Sandbox Code Playgroud)