使用正则表达式捕获组替换部分XML

时间:2014-05-05 16:52:41

标签: c# regex

我想捕获XML字符串的一部分,并用新的值替换捕获的值。

我有以下代码:

Regex regex = new Regex("<ns1:AcctId>(?<AcctId>.*?)</ns1:AcctId>");
Match match = regex.Match(Xml);

string AcctId = match.Groups["AcctId"].Value;

string IBANizedAcctId = IBANHelper.ConvertBBANToIBAN(AcctId);

newXml = Regex.Replace(oldXml, regex, IBANizedAcctId); //DOES NOT WORK!

所以我想在ns1:AcctId XML元素中捕获AcctId。然后我想通过将BBAN转换为IBAN并替换值来用新值替换这个值。第一部分有效,但我不知道如何完成最后一部分(我确实找到了一个想法here,但我不明白)。

我希望有人可以帮助我!

1 个答案:

答案 0 :(得分:1)

Regex regex = new Regex("<ns1:AcctId>(?<AcctId>.*?)</ns1:AcctId>");
Match match = regex.Match(oldXml);

string AcctId = match.Groups["AcctId"].Value;

string IBANizedAcctId = IBANHelper.ConvertBBANToIBAN(AcctId);

newXml = oldXml.Replace(AcctId, IBANizedAcctId); //should work...