java 如何去掉xml注释串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何去掉xml注释串相关的知识,希望对你有一定的参考价值。

初始xml
<root>
<!----注释1----->

<A></A>

<!-----------注释2------------->
</root>

java如何实现将注释去掉?注释去掉后为:
<root>
<A></A>
</root>
请提供实现代码,谢谢!

你好,你可以使用xmlFileContent.replaceAll("(?s)<!--.*?-->","");
这样就可以去掉所有的注释了追答

这个很管用啊

参考技术A Java中去掉xml注释串是没有快捷键的,只能一个个删除。
Java中在普通的代码中是可以有快捷键进行注释的,快捷键组合为:ctrl+shift+/,如果要取消注释可以按组合快捷键:ctrl+shift+\
参考技术B 不知道你这个格式是不是固定?
1 注释在一行 :可以当做读普通的文件一样,使用java缓冲读类一次读一行,如果这一行是以<!开头 ,以>结尾的字符串,那么这一行就去掉,然后写入新的文件。
2 注释不在一行: 那么类似1,当读取到改行字符串包含<!的时候,就一行一行的往下读,直到读到结尾是">"为止,然后去掉这些字符串,写入新的文件。
代码很简单,就不贴了。
参考技术C

参考一下:

import java.util.ArrayList;
import java.util.List;

public class ReplalceComment 
public static void main(String[] args) 
String str = "<root><!----注释1-----><A></A><!-----------注释2-------------></root>";
System.out.println(str.replaceAll("<!--[-]*[\\u4e00-\\u9fa5a-zA-Z0-9'\\"“”,。?、《》()(),.?!<>\\\\[\\\\]]*\\\\w*[-]*-->", ""));

参考技术D <%-- 你看不见我 --%>

用awk/sed去掉xml中的注释

1. awk ‘BEGIN{RS="<!--|-->"}NR%2‘ urfile

2. sed ‘/<!--/{:a;/-->/!{N;ba}};/<!--/d‘

RS (Record Separator), 记录分隔符
RS="<!--|-->" 设置记录分隔符为<!--或者-->,两者皆可用于分隔记录。
start<!--abcdefg-->123
这样分割出来就是三条记录start , abcdefg 和 123.
  
NR (Number of Records), 记录数,awk是以行(记录)为单位处理文本的,每读入一行NR就增1
NR%2 ,我换一种写法你就明白了:NR%2 != 0 {print}
就是说,只打印奇数行。

追问

额,首先谢谢您的回答。NR%2是打印奇数行,这个奇数行是指整个文档的奇数行吗?
比如
(1)例子1:start<!--abcdefg-->123 
期望结果:start 123 。实际结果:start 123。
(2)例子2:
testLine1
start<!--abcdefg-->123
实际结果:testLine1 start 和123。
疑问就出来了,这个奇数行该怎么理解呢?

追答

RS="<!--|-->" 设置记录分隔符为<!--或者-->,两者皆可用于分隔记录。
奇数行,这里的“行”指的是通过awk的记录分隔符分割出来的记录。awk中的一条记录就是一行。
例子2中,分割出来就是:
testLine1\nstart  (这是一条记录,换行用\n表示)
abcdefg
123
打印的时候,\n自动还原为换行符。


本文出自 “愺艮搥豩” 博客,请务必保留此出处http://riverxyz.blog.51cto.com/533303/1873950

以上是关于java 如何去掉xml注释串的主要内容,如果未能解决你的问题,请参考以下文章

java - 如何在hibernate java中为给定的xml使用注释

JAVA读写XML,加下注释

XML到Spring Java注释转换

XML的注释问题

不使用注释的 Java 代码到 XML/XSD

web.xml文件--编码注意事项