删除xml标记的开头和结尾之间的空格

时间:2015-04-07 16:22:47

标签: java regex xml string

我需要一个正则表达式来删除xml标记的开头和结尾之间的空格。 例如: 有人创建了xml并将其发送给我,因此我可以验证,签名并发送到Web服务。

要做到这一点,我需要删除标签的开头和结尾之间的空格: String xmlString = "<?xml version="1.0" encoding="UTF-8"?><car><name>Beatle </name>" + "<doors>2</doors><drivers><driver><name> Guilherme</name></driver>" + "<driver><name>Leonardo </name></driver></drivers></car>";
xmlString = xmlString.replaceAll("> ", ">"); xmlString = xmlString.replaceAll(" <", "<");

有没有办法将这两个替换为一个正则表达式?

2 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式:

(<[^/][^>]*>) +| +(<\/[^>]+>)

(在Java中,这应该像String pattern = "(<[^/][^>]*>) +| +(<\\/[^>]+>)";

一样使用

并应用以下替换字符串:

$1$2

检查替换全球

经过测试:

<?xml version="1.0" encoding="UTF-8"?><car><name>Beatle </name> <doors>2</doors><drivers><driver><name> Guilherme</name></driver> <driver><name>Leonardo </name></driver></drivers></car>

输出:

<?xml version="1.0" encoding="UTF-8"?><car><name>Beatle</name> <doors>2</doors><drivers><driver><name>Guilherme</name></driver> <driver><name>Leonardo</name></driver></drivers></car>

enter image description here

答案 1 :(得分:1)

(>) | (<)

您可以使用| or运算符并替换为$1$2。在1个正则表达式中完成。