2015-08-21 54 views
-1

我想清理一些XML與sed。我有一個很大的XML文件,包含地址詳細信息。地址詳細信息位於<line>標記內。由於某種原因系統有<REAR(是的,沒有最後的'>')<FRONT><REAR>裏面亂七八糟。sed正則表達式裏面的XML標籤

例如:

<Address> 
<line>123 & GRD FLOOR <REAR</line><line>59 EXAMPLE RD</line> <line>CITY</line><line></line><line></line><line>RG1 1AB</line> 
</Address> 

<Address> 
<line>SECOND GRD FLOOR <FRONT></line><line>59 EXAMPLE RD</line><line>CITY</line><line></line><line></line><line>RG1 1AB</line> 
</Address> 

<Address> 
<line>123 & GRD <REAR> FLOOR</line><line>59 EXAMPLE RD</line><line>CITY</line><line></line><line></line><line>RG1 1AB</line> 
</Address> 

有人告訴我,只是逃避信息,因此,這裏有sed命令的變化,我想行標籤內適用。

sed 's/ *$//g'; 's/ *#//g'; 's/&/&amp;/g'; 's/</&lt;/g';'s/>/&gt;/g' 

任何幫助非常感謝,這是做我的頭

編輯:忘了說,該標籤可以出現其他地方<line>之外。這些需要保持不變。編輯2:對不起,我應該說這是在客戶的Unix系統上運行。因此安裝第三方工具並不是真正的選擇。

+4

在大多數情況下,你不應該再使用gex來解析HTML/XML。你會更好使用專用的XML解析器 – Aserre

回答

3

通常,正則表達式不足以解析XML(或HTML)。問題是,HTML/XML比正則表達式更復雜(如Chomsky hierarchy中的不同級別)。

對於這個任務,你應該使用更復雜的工具 - 比如lxmlbeautifulsoup4與Python。

的話題延伸閱讀:

+0

我無法安裝任何東西,因爲它的運行sco unix .. – jetgerbil