2010-07-27 36 views
0

我有一個大量記錄替換線以下類型的,我不得不修改使用什麼正則表達式中的一個XML文件

  1. 我想刪除CREATED_BY =「29 「線路不留空間。注意:一個外卡CREATED_BY值內將是優選

  2. 我想刪除整個線CREATION_DATE =「...」和/>較大的狀態後應該移動=‘1’/>

  3. 插入狀態變量(例如modified_by = 「30」)之前,一個新的靜態線

XML:

<user id="1" 
     org_id="3" 
     created_by="29" 
     state="1" 
     creation_date="2010-06-01"/> 

什麼樣的正則表達式的我應該ü爲了改變這個?

回答

2

假設的屬性總是出現在相同的順序:

搜索:(\s+)created_by="[^"]+"(\s+state="[^"]+")\s+creation_date="[^"]+"

取代:$1modified_by="30"$2

如果需要指定元素的名稱,你可以添加這的開始正則表達式:

(<user(?:\s+\w+="[^"]+")+?)

...和變化t他拍攝組引用在更換這樣的:

$1$2modified_by="30"$3

2

正則表達式是解決這個問題的一個錯誤方法,原因很多,其中很多都在the answers to this question中概述。

相反,如果您使用正確的XML解析器並使用XPath來標識要更改的XML文檔的某些部分,則會發現您的頭痛更少。

+0

我只是試圖操控這裏使用Eclipse樣本數據。我不打算以編程方式進行此操作,如果可以使用簡單的搜索和替換範例來解決此問題,我可能會堅持使用它,否則會手動執行此操作。 – Sam 2010-07-27 07:18:46

相關問題