假如有一个字符串 如下:<embed src="F:\Fun\756.swf" width="90" height="70" ></embed><embed src="F:\Fun\519.swf" width="90" height="70" ></embed>
我现在想解析,先循环2次  //这个 我已经解决。然后在循环里, 分别对src="...." 替换成 2个值
最终得出的效果为:
<embed src="aa_01" width="90" height="70" ></embed><embed src="aa_02" width="90" height="70" ></embed>01,02 为2次循环 得到的值。 请问 大家有什么好办法!

解决方案 »

  1.   

    解析为XML DOM树,将节点复制一下就行了
      

  2.   

    更正,不是复制,是对各元素的src属性直接赋新值。
      

  3.   


    String[] embed = new String[]
                     {"<embed src=\"F:\\Fun\\756.swf\" width=\"90\" height=\"70\" ></embed>",
    "<embed src=\"F:\\Fun\\756.swf\" width=\"90\" height=\"70\" ></embed>"};

    String temp = null;
    String replace = null;
    for (int i = 0; i < embed.length; i++) {
    temp =  embed[i].substring(embed[i].indexOf("src="), embed[i].indexOf("width=") - 1);
    replace = "src=\"aa_0" + (i + 1) + "\""; 
    System.out.println(embed[i].replace(temp, replace));
    }
    这样可以不
      

  4.   


    String string = "<embed src=\"F:\\Fun\\756.swf\" width=\"90\" height=\"70\" ></embed><embed src=\"F:\\Fun\\519.swf\" width=\"90\" height=\"70\" ></embed>";
    StringBuffer sBuffer = new StringBuffer();
    Matcher matcher =  Pattern.compile("(src\\s*=\\s*\")[^\"]*(\")").matcher(string);  //匹配 src  =  "  ";
    int i=0;
    while(matcher.find()){
    matcher.appendReplacement(sBuffer,"$1aa_0"+ ++i+"$2");  //把到匹配的 把其转为  src = "aa_0i"  
    }
    matcher.appendTail(sBuffer);  //将后面部分加入sBuffer中
    System.out.println(sBuffer);结果:<embed src="aa_01" width="90" height="70" ></embed><embed src="aa_02" width="90" height="70" ></embed>