c# - 合并 2 条具有相同架构的 xml 记录
问题描述
我们如何合并 2 个具有相同架构的 XML 记录?
例如,假设我们有两条记录,例如:
<msg>
<name>alex</name>
<payload></payload>
</msg>
第二个:
<msg>
<name></name>
<payload>blabla</payload>
</msg>
预期结果:
<msg>
<name>alex</name>
<payload>blabla</payload>
</msg>
我们只是取了非空值。
我们如何合并两个具有相同架构的 xml 记录?
解决方案
一个简单的实现将通过按名称配对相应项目的元素并创建一个选择非空白元素的文本的新元素。
XElement ShallowMerge(XElement a, XElement b) =>
new XElement(a.Name,
from ae in a.Elements()
join be in b.Elements() on ae.Name equals be.Name
select new XElement(ae.Name,
!String.IsNullOrWhiteSpace((string)ae)
? (string)ae
: (string)be
)
);
推荐阅读
- tensorflow - 从 TFLite 模型中获取 TFLite 版本信息
- c# - 尝试将字符串转换为 HMACSHA1 .NET 的 base64 时出错
- json - 如何在 WhatsApp API 中下载发送用户的媒体文件?
- postgresql - 表 1 和表 2 的 SQL 查询连接
- php - 在 Jigsaw 静态站点生成器中将 Tailwindcss 替换为 Bootstrap 5
- flutter - 如何在颤振CustomPaint中正确使用shouldRepaint
- laravel - 如何为运行 Laravel 的 apache vhost 设置 HTTP 基本身份验证
- groovy - 使用正则表达式从 json 响应中提取特定值 - 最新
- c# - 具有通用 BLL 的多个 UI
- c# - HTMLAgilityPack C#,如何从 DIV 中的嵌套标签中提取文本