2012-08-15 45 views
2

我想格式化一個xml文檔,然後將其導入到數據庫中。我有幾百行<Image #1 File Name>Random string to find and replace</Image #1 File Name>我對我的生活沒有任何線索,正確的發現&在正則表達式中替換模式來做我所需要的。我能夠用這場比賽的所有實例:正則表達式查找和替換標記之間的所有空格下劃線

<Image #1 File Name>(.*?)</Image #1 File Name> 

但是我在我需要再用下劃線代替打開/關閉標籤<Image #1 File Name>Random_string_to_find_and_replace</Image #1 File Name>

+0

什麼在標籤的空間?這樣的xml標籤中不能有空格。這只是無效的XML。 – FailedDev 2012-08-15 21:47:52

+0

我並不擔心驗證,因爲這僅用於導入數據庫 – Siebird 2012-08-15 21:50:22

+0

Sublime Text的正則表達式引擎不允許您搜索/替換類似IIRC的內容,因爲您無法修改捕獲組。 – Blender 2012-08-15 21:51:04

回答

1
awk -F'<|>' '{gsub(/ /,"_",$3);print"<"$2">"$3"<"$4">"}' yourxmlfile 
OK之間

空白的格局不確定,那麼你就可以~匹配運營商檢查,過濾前:

awk -F'<|>' '{if ($0 ~ /Image #1 File Name/) {gsub(/ /,"_",$3);print"<"$2">"$3"<"$4">"} else {print;}}' yourxmlfile 
+0

到達那裏...我只需要替換xml文件中的某些節點()。這樣做每個節點並且在每個打開和關閉行標記之後添加<>。 <>&<> – Siebird 2012-08-16 01:19:06

0

我建議的下一個絕招:

  1. 具有兩個 differentspecial詞語替換<Image #1 File Name></Image #1 File Name>沒有空格(例如MY_START_TAGMY_END_TAG)。
  2. 用下劃線替換所有空格。
  3. 恢復第一步。

分而治之:)

+0

我要做的是將xml文檔導入MySQL數據庫,然後在這些列上進行字符串替換。應該是最簡單的無痛方式。感謝您的輸入 – Siebird 2012-08-17 19:41:03

相關問題