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

本文关键字:选择 xml 元素 正则表达式 | 更新日期: 2023-09-27 18:12:21

我想通过C# regex的类名提取svg element

例如:

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

和我想删除每一个路径元素与highcharts-tracker作为类名使用:

 new Regex("");

有人知道吗?

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

在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,正则表达式不是合适的工具。

编辑:如果它是畸形的(你应该说开始),你应该试着找出为什么它是畸形的,并修复它你试图做任何其他处理。现在真的没有理由说XML是畸形的……有很多好的XML api适用于几乎所有现有的平台。