首页 > 解决方案 > 如何屏蔽嵌套 xml 标记中的值

问题描述

我有一个 .NET 代码来屏蔽值并在 xml 日志中显示输出,但现在我想要掩码重复值。下面的代码仅屏蔽名称,但我也不想屏蔽电话。

private static string GetXmlTagValue(string inputString, string xmlTagToFind)
{
    var regExPattern = $"<{xmlTagToFind} .*?>(.*?)</{xmlTagToFind}>|<{xmlTagToFind}>(.*?)</{xmlTagToFind}>";
    var match = Regex.Match(inputString, regExPattern);
    return match.Success ? XElement.Parse(match.Value).Value : string.Empty;
}

private static string mask(this string inputValue)
{
   return string.IsNullOrEmpty(inputValue)
          ? inputValue : "".PadLeft(inputValue.Trim().Length, 'X');
}

private static StringBuilder Deserialize(StringBuilder inputString)
{
    var key= GetXmlTagValue(inputString.ToString(), "key");
    if (!string.IsNullOrWhiteSpace(key))
      inputString = inputString.Replace(key, key.mask())
    return inputString;
}

标签: deserializationmasking

解决方案


推荐阅读