日期:2014-05-20  浏览次数:20719 次

java 删除HTML里面一个tag的情况
一段代码如下:
<--! begincontent  >
   <td>
     <tr>
         <td>1</td>
         <td>2</td>
     </tr>
   </td>
<--! endcontent -->
我想要把<--! begincontent  >下面的第一个<td>和<--! endcontent -->之前的第一个</td>删掉,得道如下代码:
<--! begincontent  >
   
     <tr>
         <td>1</td>
         <td>2</td>
     </tr>
   
<--! endcontent -->
这一段用java来做该怎么实现呢?请各位大虾帮帮忙!不胜感激!
Java HTML tag

------解决方案--------------------
下面的这种方法应该可以,我没测试。
只是一个大体上的思路,楼主改改应该可以用。

public static void main(String[] args) {
String str="<--! begincontent  ><td><tr><td>1</td><td>2</td></tr></td><--! endcontent -->";
int first=str.indexOf("<td>", str.indexOf("<--! begincontent  >"));
str=str.substring(0,first)+str.substring(first+"<td>".length(),str.length());//去除第一个<td> 
int second=str.indexOf("</td>\n<--! endcontent -->", str.indexOf("<--! endcontent -->"));
str=str.substring(0,second)+str.substring(second+"</td>".length(), str.length());//去除第二个</td> 
}

或者用正则,
正则做应该挺有趣。
------解决方案--------------------
引用:
或者楼主试一试这条正则语句,花了10分钟凑出来的,还有问题的话回下
Java code?1s=s.replaceAll("(?s)(.*?)"+s1+"<td>(.*?)</td>"+s2+"(.*?)", "$1"+s1+"$2"+s1+"$3");

String s1="<--! begincontent  >";
String s2="<--! endcontent -->";