2012-04-18 51 views
1

我正在將我的客戶的舊的mysql數據庫移動到一個新的wordpress系統(舊的也是wp),我注意到他的文章都保存着噸和噸的HTML <p></p>由於直接從MS Word導入內容,所以標籤充滿了不同的風格。我已經說服客戶使用從Word粘貼並在保存新文章之前清理完他的文章。清理舊的數據庫完整的HTML標記

現在,有沒有任何安全的方法來刪除所有已保存的標記<p style="different_styles_every_time"></p>而不留下垃圾,並希望保持原來的換行符?雖然我已經開始研究正則表達式,但很多答案都建議不要使用它來解析HTML。任何線索?

回答

1

這是一個安全的過程,我在一個類似的數據庫情況(html被存儲)的「預渲染清理」過程中使用它不幸的是寫在Java中,但概念(和正則表達式使用)可以應用到SQL更新查詢。

一個注意事項是,我建議不僅在進行此操作之前進行備份,而且還要在「安全」版本的數據庫上進行測試。當然,對於這種規模的更新程序,您可能已經知道風險。

上注:「HTML塊清理」 不應該被解釋爲一個字符串字面量,而是隻是一個紙條,上面寫着「displayContent是變量保存數據庫的HTML結果,在這種情況下只有1一環內的結果集的迭代。

String displayContent = "THE BLOCK OF HTML TO CLEAN"; 
String tagregex = "<p[^>]*>"; 
Pattern p2 = Pattern.compile(tagregex); 
Matcher m2 = p2.matcher(displayContent); 
displayContent = m2.replaceAll(""); 
displayContent = displayContent.replaceAll("</p>", ""); 

當然你也可以使用這個任何其他HTML標籤+它們的屬性。祝你好運!

+0

我想這真的會做到這一點。在' * >'部分是我最擔心的事情,而且它似乎能夠滿足我的需求,所以謝謝! – moraleida 2012-04-19 16:38:43

+0

是的,真的沒有回去之後,更新查詢短回滾哈哈哈 - 很高興它的工作! – 2012-04-19 17:27:10