アプリケーションから非常に大きな XML 出力があります。それを自分のプログラムで処理してから、元のプログラムにフィードバックする必要があります。この XML には、置換する必要がある部分があります。興味深い部分は次のようになります。
<sys:customtag sys:sid="1" sys:type="Processtart" />
<sys:tag>value</sys:tag>
here are some other tags
<sys:tag>value</sys.tag>
<sys:customtag sys:sid="1" sys:type="Procesend" />
ドキュメントには、このようないくつかの部分が含まれています。
これらのタグを変更できるようにするには、これらのタグ内のすべての XML 部分を取得する必要があります。これらの部分を取得する正規表現を作成しましたが、機能しません。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"output.xml");
Regex regExp = new Regex(@"<sys:customtag(.*?)Processtart(.*?)/>(.*?)<sys:customtag (.*?)Procesend(.*?)/>", RegexOptions.Multiline & RegexOptions.IgnorePatternWhitespace & RegexOptions.CultureInvariant);
MatchCollection matches = regExp.Matches(xmlDoc.InnerXml);
全体を 1 行に残して、複数行オプションなしでこの正規表現を呼び出すと、すべての出現箇所が検出されます。ファイルをそのままにして、複数行オプションを設定すると、機能しません。何が問題なのですか、何を変更すればよいですか? または、正規表現なしでこれらのタグ間の XML 部分を取得する簡単な方法はありますか?