使用正则表达式按类名选择xml元素

时间:2013-05-06 09:45:09

标签: c# .net regex svg

我想用svg element

的类名提取C# regex

例如我有这个:

<path fill="none" ... class="highcharts-tracker highcharts-tracker" ... stroke-width="22" zIndex="2" style=""/>

我希望使用以下内容删除highcharts-tracker作为类名的每个路径元素:

 new Regex("");

有人知道吗?

1 个答案:

答案 0 :(得分:4)

在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 ...现有的API可以很好地处理XML,而正则表达式不是一个合适的工具。< / p>

编辑:如果它格式不正确(你应该说是开头)你应该尝试解决为什么它的格式错误并在之前修复它你试图做任何事情其他处理。现在没有理由让XML出现格式错误......现在几乎所有平台都有很多优秀的XML API。