我想修改<img src="">
屬性中不太格式錯誤的HTML(WordPress帖子)。我知道我可以採取簡單的方式並使用正則表達式,但我恐怕people in blue furry suits will come haunt me in my sleep。用DOM解析HTML時保留文件偏移量?
如果我使用DOM解析器讀取HTML並修改<img>
標籤,恐怕我無法完全重構帖子(因爲只有我的修改),因爲DOM解析器可能也會這樣做很多清理工作,並可能刪除重要數據。 SAX解析器可能無法處理無效的XML,所以這也不起作用。因此,有沒有一種中間的方式,我可以使用DOM解析器,但是知道每個元素的起始位置,所以我可以從那裏做字符串替換或類似的東西?我知道源文檔中不存在DOM樹中的某些節點(<b>Some <i>bizarre</b> formatting</i>
可能會觸發此操作),但這是否意味着它始終不可能?我看到在PHP 5.3中添加了DOMNode::getLineNo()
function,但我使用的是5.2.x.
我的格式化例子是理論上的,爲什麼這不能適用於所有的DOM節點。我相信WordPress編輯器會清理它,所以我不必處理這種情況。而'DOMNode :: getLineNo()'函數可以用於減少最終字符串替換的範圍,但是由於我在PHP 5.2中,因此我無法使用它。 – 2010-11-11 15:41:15
@Jan然後DOM或SimpleHTML都可能適合你! – 2010-11-11 16:57:57