【发布时间】:2021-01-16 21:04:15
【问题描述】:
我正在尝试将 XML 取消格式化为单行。 (使用 JAVA)
我尝试使用以下正则表达式来替换。
input.replaceAll(">\\s+", ">").replaceAll("\\s+<", "<");
但是,它也会删除元素前后的空间。 这是出乎意料的。
例如:
场景01
之前:<AAA>{space}{space}{space}</AAA>
之后:<AAA></AAA>
场景02
之前:<AAA>{space}{space}123{space}{space}</AAA>
之后:<AAA>123</AAA>
场景 03
之前:<AAA>{space}A{space}B{space}C{space}</AAA>
之后:<AAA>A{space}B{space}C</AAA>
有没有办法取消格式化并避免上述情况?
【问题讨论】:
-
不相关。 OP 要求通过替换换行符来重新格式化 XML,而不是解析任何内容。这非常可以使用正则表达式。
-
使用正则表达式处理 XML 总是很危险的。每次都使用 XML 解析器要好得多。
标签: java regex xml indentation