如何替换 Java 中 xml 模板中的第 n 次出现?
How to replace nth occurrence in the xml template in Java?
这里我用Java做自动化,从容与放心。
所以我想用空字符串替换第二个 <p>
& </p>
标签。
这里附上模板
<Request>
<P>
<n>name1</n>
<v>${value1}</v>
</P>
<P>
<n>name2</n>
<v>${value2}</v>
</P>
<P>
<n>name3</n>
<v>value3</v>
</P>
</Request>
我正在使用以下代码替换第二个 <p>
和 </p>
标签。但它被替换了所有 <p>
&</p>
标签(第一个和最后一个 <p>
& </p>
标签也)
String request = exampleTemplate.replace("${value1}", "XYZ")
.replace("<P>", "")
.replace("<v>${value2}</v>", "1234")
.replace("</P>", "")
.replace("${value3}", "AAA");
如何只替换第二个 <p>
和 </p>
标签?
您可以同时匹配第一个和第二个 <p>
元素。
String res = str.replace("${value1}", "XYZ")
.replace("<v>${value2}</v>", "1234")
.replace("${value3}", "AAA")
.replaceFirst("(?s)(<P>.*?</P>\s*)<P>(.*?)</P>", "");
这里我用Java做自动化,从容与放心。
所以我想用空字符串替换第二个 <p>
& </p>
标签。
这里附上模板
<Request>
<P>
<n>name1</n>
<v>${value1}</v>
</P>
<P>
<n>name2</n>
<v>${value2}</v>
</P>
<P>
<n>name3</n>
<v>value3</v>
</P>
</Request>
我正在使用以下代码替换第二个 <p>
和 </p>
标签。但它被替换了所有 <p>
&</p>
标签(第一个和最后一个 <p>
& </p>
标签也)
String request = exampleTemplate.replace("${value1}", "XYZ")
.replace("<P>", "")
.replace("<v>${value2}</v>", "1234")
.replace("</P>", "")
.replace("${value3}", "AAA");
如何只替换第二个 <p>
和 </p>
标签?
您可以同时匹配第一个和第二个 <p>
元素。
String res = str.replace("${value1}", "XYZ")
.replace("<v>${value2}</v>", "1234")
.replace("${value3}", "AAA")
.replaceFirst("(?s)(<P>.*?</P>\s*)<P>(.*?)</P>", "");