我的 XML 文件很少,而且一些用户在中间添加了额外的空格(例如在元素标签或文本标签中),比较多个版本的文件变得非常困难。
示例(xml 文件)
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author >
<title>XML Developer's Guide </title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102" >
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
</catalog>
正如您在上面的示例代码中看到的,作者的元素标签和第一本书元素中标题的文本节点有额外的空格。同样,第二本书元素的元素标签有额外的空格。
我想要一个正则表达式来搜索这些类型的空格(超过 1 个相邻的空格),但我不想要前导空格。如果我不留下前导空格(行首),并用单个空格替换它们,缩进将丢失。
有一些方法可以处理这个问题(比如首先删除所有双+空格并在文件上执行 xmllint --format),但如果有人可以给我一个用于行中间空格的 reg exp 会很有帮助。
我尝试了 ^、\s 和 ^\s 的组合,但我似乎无法得到解决方案。因此,如果有人可以提出建议,那将非常有帮助。(文本节点中的多个空格根据我们项目的设计是不正确的值,因此删除它们不会造成任何不利影响)