1

svg element彼のクラス名でを抽出したいC# regex.

たとえば、私はこれを持っています:

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

highcharts-trackerそして、次を使用して、クラス名としてすべてのパス要素を削除したい:

 new Regex("");

誰でも知っていますか?

4

1 に答える 1

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 の解析に正規表現を使用しないでください... XML は既存の API によって非常にうまく処理され、正規表現は適切なツールではありません。

編集: 形式が正しくない場合 (最初に言うべきでした) 、他の処理を行う前に、形式が正しくない理由を調べて修正する必要があります。最近では、XML の形式が正しくないことを言い訳にすることはできません... 存在するほぼすべてのプラットフォーム用の優れた XML API がたくさんあります。

于 2013-05-06T09:50:14.387 に答える