我想提取一个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