我需要一个正则表达式来删除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(" <", "<");
有没有办法将这两个替换为一个正则表达式?
答案 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>
答案 1 :(得分:1)
(>) | (<)
您可以使用|
or
运算符并替换为$1$2
。在1个正则表达式中完成。