【发布时间】:2021-11-10 02:18:33
【问题描述】:
我有一项非常繁琐的任务,因为我必须手工完成(我的公司花了一大笔钱买了一个工具,但现在已经不工作了)。
我有两个 XML 列表,每个列表都缺少一半,所以我需要将它拼凑成第三个,然后再发送到系统。以及将标题更改为我发送文件的日期。
我已经成功地设置了日期的输入,向用户询问输入很容易。但是剩下的任务让我发疯,我尝试了很多我在这里和微软论坛上找到的东西,但无济于事......这个任务让我很生气,因为我是唯一一个“精通技术的人” " 来做(从 XML 中复制和粘贴文本简直是猴子的工作)。
显然不是卡车和汽车,而且文件多于两个,但它们都是这样的:一种只有汽车,有一个空的卡车节点,另一种有卡车但有一个空的汽车节点。
文件 1 示例
<?xml version="1.0" encoding="utf-8"?>
<document>
<header>
<startDate>01/01/2020</startDate>
<endDate>01/02/2020</endDate>
</header>
<body>
<cars>
<car>
<ID>1</ID>
<Name>Blue Car</Name>
</car>
<car>
<ID>2</ID>
<Name>Red Car</Name>
</car>
</cars>
<trucks>
</trucks>
</body>
</document>
文件 2 示例
<?xml version="1.0" encoding="utf-8"?>
<document>
<header>
<startDate>01/01/2020</startDate>
<endDate>01/02/2020</endDate>
</header>
<body>
<cars>
</cars>
<trucks>
<truck>
<ID>1</ID>
<Name>Blue Truck</Name>
</truck>
<truck>
<ID>2</ID>
<Name>Red Truck</Name>
</truck>
</trucks>
</body>
</document>
文件 3 示例
<?xml version="1.0" encoding="utf-8"?>
<document>
<header>
<Date>03/02/2020</Date>
</header>
<body>
<cars>
<car>
<ID>1</ID>
<Name>Blue Car</Name>
</car>
<car>
<ID>2</ID>
<Name>Red Car</Name>
</car>
</cars>
<trucks>
<truck>
<ID>1</ID>
<Name>Blue Truck</Name>
</truck>
<truck>
<ID>2</ID>
<Name>Red Truck</Name>
</truck>
</trucks>
</body>
</document>
【问题讨论】:
-
可以分享一下你试过的C#代码吗?
-
将卡车反序列化为匹配类的一个实例,然后将汽车反序列化为第二个实例。最后,有第三个实例,您将实例 1 中的卡车和实例 2 中的汽车分配到该实例中(请记住,您正在执行引用类型分配,而不是深度复制,因此它不会太昂贵)。最后将第三个实例序列化为 XML