deserialization - 如何屏蔽嵌套 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;
}
解决方案
推荐阅读
- python - Python在docx中一张一张插入图片
- python - 如何将字符串列表转换为python中的字典列表
- google-app-engine - Google Cloud 未正确安装软件包
- android - 如何将自定义字体应用于xamarin android中的导航抽屉项目
- java - JPA 连接表查询
- android - Progressbar - 进度结束边框
- javascript - 对象的数字属性在Angular2中转换为字符串
- vba - VBA更新文件夹内的共享点列表
- node.js - Artillery JavaScript 堆内存不足
- java - 自定义 EventListener 检查类覆盖的抽象方法