我想提取一個svg element
,他的類名是C# regex
。通過類名選擇xml元素和正則表達式
例如,我有這樣的:
<path fill="none" ... class="highcharts-tracker highcharts-tracker" ... stroke-width="22" zIndex="2" style=""/>
而且我想通過刪除與highcharts-tracker
的類名的每個路徑元素:
new Regex("");
有人知道嗎?
我想提取一個svg element
,他的類名是C# regex
。通過類名選擇xml元素和正則表達式
例如,我有這樣的:
<path fill="none" ... class="highcharts-tracker highcharts-tracker" ... stroke-width="22" zIndex="2" style=""/>
而且我想通過刪除與highcharts-tracker
的類名的每個路徑元素:
new Regex("");
有人知道嗎?
在LINQ to XML,這是非常簡單的:
var classToRemove = "highlights-tracker";
var xml = XDocument.Parse(svg);
var elements = doc.Descendants("path")
.Where(x => x.Attribute("class") != null &&
x.Attribute("class")
.Value.Split(' ')
.Contains(classToRemove));
// Remove all the elements which match the query
elements.Remove();
你應該不使用正則表達式來嘗試解析XML,XML ......是很好的通過現有的API來處理,和正則表達式不是一個合適的工具。
編輯:如果它是畸形的(你應該說開始),你應該嘗試找出爲什麼它的畸形和之前將其修復你嘗試做任何其他處理。現在真的沒有理由對XML進行錯誤修改......現有的各種平臺都有很多優秀的XML API。
您使用的是什麼XML API?你是否真的需要正則表達式來匹配類匹配,或者你可以指定要移除的類名稱並分割屬性值? – 2013-05-06 09:46:41
我只是有一個字符串的svg代碼。這就是爲什麼我想使用正則表達式。 – Dragouf 2013-05-06 09:47:52
不,不,不。你不應該把它當作一個字符串來對待。它的意思是XML,所以你應該*使用它作爲XML。其他任何事情都將導致大量的痛苦。 – 2013-05-06 09:48:32