如果包含使用正则表达式的字符串,则替换父XML标记的java
我有以下XML:
<customer>
<name>Customer name</name>
<address>
<postalcode>94510</postalcode>
<town>Green Bay</town>
</address>
<phone>0645878787</phone>
</customer>
我只想使用REGEX,如果邮政编码为94510,则将整个<address>..</address>
标记替换为空字符串
我有
String s = "<the xml above here/>"
s = s.replace(source, target);
我只能控制“源”和“目标”。有没有正则表达式可以解决这个问题
多谢各位
# 1 楼答案
如前所述,请不要使用正则表达式来处理XML。下面是您应该采取的方法(代码改编自here和here):
这将产生:
如果您必须使用正则表达式,请查看以下内容:
收益率:
# 2 楼答案
在没有外部库的情况下,我能看到的最简单的方法是使用XPath表达式选择应该删除的节点,然后删除它们。这在Java中相当冗长,但并不十分复杂: