我需要對C++中的HTML做一些簡單的修改,最好不用完全重寫HTML,比如當我使用libxml2或MSHTML時會發生什麼。非破壞性地解析和修改C++中的HTML元素
特別是我需要能夠讀取,然後(可能)修改所有「img」元素的「src」屬性。我需要它足夠強大,以便能夠使用任何有效的HTML來完成此操作,但最好不要更改此過程中的任何其他HTML。
是否有任何圖書館能夠處理這個問題?或者這是我能用正則表達式做的事情嗎?我對正則表達式不太瞭解,我在這裏讀了很多問題,說你不應該用它們來解析HTML,但我不清楚這是否適用於這樣的事情,或者如果這個原則適用主要用於從HTML中構建樹的上下文中解析。
我不確定我是否理解你的約束。使用DOM不會完全重寫HTML。 – EBGreen 2009-08-09 16:01:28
@EBGreen,libxml添加標記,標記,並重新格式化所有HTML。 MSHTML將所有標籤更改爲大寫,並將其全部重新格式化。由於有效的HTML仍然可以在瀏覽器中顯示,因此將其分解爲DOM通常會留下原始HTML中的內容。我想盡可能保留原始的HTML,因爲人們可能仍然在我的產品的另一端進行設計,如果他們看到的HTML與他們試圖製作的HTML看起來有很大的不同,那可以成爲一個問題。 –
Gerald
2009-08-09 16:08:50
對不起,應該說「因爲無效的HTML仍然可以顯示......」 – Gerald 2009-08-09 16:09:23