我有很少的XML文件,並且有些用戶在中間添加了額外的空格(如元素標記或文本標記),並且比較多個版本的文件變得非常困難。sed:從文本中間刪除空格
實例(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個相鄰的空格),但我不希望前導空白。如果我不留下主要的空格(起始行),並將其替換爲單個空格,則縮進將會丟失。
我可以通過一些方法來處理這個問題(比如先刪除所有的double +空格,然後在文件上做一個xmllint格式),但是如果有人能夠給我一個reg中間空格線。
我試過^,\ s和^ \ s的組合,但我似乎無法得到解決方案。所以如果有人可以提出建議,那將會非常有幫助。 (文本節點的多個空格是不正確的值按我們的項目的設計,以便消除他們不會造成任何不良影響。)
你真的想要什麼,不管你是否意識到,都是一個正確的XML解析/處理工具集,而不是一個正則表達式引擎... – twalberg