微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Java中的xml模板中替换第n次出现?

如何解决如何在Java中的xml模板中替换第n次出现?

在这里,我正在使用 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>","$1$2");

Demo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。