-1

私は xml だけを持っています。というタグの外側にマークアップを追加したかったのです。scl

たとえば

<documents>
<rnl></rnl>
<snl></snl>
<scl>This is scl</scl>
</documents>

したがって、<scl>This is scl</scl> は次のように変換され<credit><scl>This is scl</scl></credit> ます。これを達成するために以下を変更するにはどうすればよいですか? これまでのところ、私は試しました。

String content5 = "<scl>this is scl</scl>";
System.out.println(content5.replaceAll("^(?:&lt;scl&gt;)(?:.*?)(?:&lt;/scl&gt;)", "<credit>$1</credit>" ));
4

4 に答える 4

1

1つの方法は次のようにすることです:

String content5 = "<scl>this is scl</scl>";
System.out.println(content5.replace("<scl>", "<credit><scl>").replace("</scl>", "</scl></credit>"));
于 2013-05-15T04:20:34.497 に答える
0

これを試して

    StringBuilder sb = new StringBuilder(content5);

    sb.insert(sb.indexOf("<scl>"), "<credit>");
    sb.insert(sb.indexOf("</scl>") + "</scl>".length(), "</credit>");

    String result = sb.toString();
于 2013-05-15T04:22:05.377 に答える
0

どうぞ:

String content5 = 
    "<scl>this is scl</scl>\n" +
    "<blah>this isn't</blah>\n" +
    "<scl>this is scl</scl>\n" +
    "<blah>this isn't</blah>\n";
System.out.println(content5.replaceAll("(?:<scl>)(?:.*?)(?:</scl>)", "<credit>$0</credit>" ));

出力:

<credit><scl>this is scl</scl></credit>
<blah>this isn't</blah>
<credit><scl>this is scl</scl></credit>
<blah>this isn't</blah>
于 2013-05-15T04:23:17.593 に答える
0

問題に対する考え方を完全に変えて、適切なライブラリを使用して XML Dom4jを処理できます。非常に習得が容易で、非常にシンプルで簡単に使用できます。必要なものはすべてこのリンクで説明されています。

于 2013-05-15T04:36:23.660 に答える