使用正则表达式按类名选择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("");
有人知道吗?
在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适用于几乎所有现有的平台。