2015-05-28 171 views
-3

如何從以下字符串刪除SVG標籤

 "<text x=\"264\" style=\"color:#606060;cursor:default;font- 
    size:11px;fill:#606060;width:140px;text-overflow:clip;\" text-anchor=\"middle\" 
    transform=\"translate(0,0)\" y=\"389\" opacity=\"1\"><tspan>xyz</tspan> 
<tspan dy=\"14\" x=\"264\">abc</tspan>" 

刪除HTML SVG <tspan>標籤將其座標DY = \「14 \」有沒有一種方法,我可以使用JavaScript匹配()並在識別字符串'dy = \「14 \''

時替換()整個標籤。在這種情況下,應該刪除包含abc的整個tspan標籤。

+1

不要試圖使用正則表達式來解析XML,這已經是一個已解決的問題。使用搜索。 – Nit

+0

你是否明白這個問題? @Nit – patz

+2

是的,我做了,這是無數類似問題的重複,使用網站搜索。 – Nit

回答

2

jQuery可以將一串HTML解析爲可用的jQuery對象。舉例來說,你可以嘗試這樣的事:

var rawDocument = "<text x=\"264\" style=\"color:#606060;cursor:default;font-size:11px;fill:#606060;width:140px;text-overflow:clip;\" text-anchor=\"middle\" transform=\"translate(0,0)\" y=\"389\" opacity=\"1\"><tspan>xyz</tspan><tspan dy=\"14\" x=\"264\">abc</tspan>"; 

var document = $(rawDocument); 

document.find("tspan[dy=14]").remove() 

console.log(document); 

爲什麼會變成這樣優於一些JavaScript方法,如String.matchString.replace?那麼,這兩個要麼採取正則表達式或字符串輸入。由於使用這些函數之一來解析字符串會有點困難,因此您必須使用正則表達式。但是Regex並不是爲解析而設計的,除此之外,JavaScript的Regex引擎並不是最好的解決方案。既然你有jQuery在你的處置,我會利用這一點。